// update nodeinfo data
Worker::add(PRIORITY_LOW, "CronJobs", "nodeinfo");
- Worker::add(PRIORITY_LOW, "DiscoverPoCo", "update_server");
+ Worker::add(PRIORITY_LOW, 'UpdateServers');
Worker::add(PRIORITY_LOW, 'UpdateSuggestions');
This function can be called in these ways:
- checkcontact: Updates gcontact entries
- server <poco url>: Searches for the poco server list. "poco url" is base64 encoded.
- - update_server: Frequently check the first 250 servers for vitality.
- PortableContact::load: Load POCO data from a given POCO address
*/
$result .= "failed";
}
Logger::log($result, Logger::DEBUG);
- } elseif ($command == "update_server") {
- self::updateServer();
} elseif ($command == "load") {
if (!empty($param4)) {
$url = $param4;
return;
}
-
- /**
- * @brief Updates the first 250 servers
- *
- */
- private static function updateServer() {
- $r = q("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()");
-
- if (!DBA::isResult($r)) {
- return;
- }
-
- $updated = 0;
-
- foreach ($r AS $server) {
- if (!PortableContact::updateNeeded($server["created"], "", $server["last_failure"], $server["last_contact"])) {
- continue;
- }
- Logger::log('Update server status for server '.$server["url"], Logger::DEBUG);
-
- Worker::add(PRIORITY_LOW, "DiscoverPoCo", "server", $server["url"]);
-
- if (++$updated > 250) {
- return;
- }
- }
- }
}
--- /dev/null
+<?php
+/**
+ * @file src/Worker/UpdateServers.php
+ */
+namespace Friendica\Worker;
+
+use Friendica\Core\Logger;
+use Friendica\Core\Worker;
+use Friendica\Database\DBA;
+use Friendica\Protocol\PortableContact;
+
+class UpdateServers
+{
+ /**
+ * @brief Updates the first 250 servers
+ *
+ */
+ public static function execute()
+ {
+ $gservers = DBA::select("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()");
+ if (!DBA::isResult($gservers)) {
+ return;
+ }
+
+ $updated = 0;
+
+ while ($gserver == DBA::fetch($gservers)) {
+ if (!PortableContact::updateNeeded($gserver['created'], '', $gserver['last_failure'], $gserver['last_contact'])) {
+ continue;
+ }
+ Logger::info('Update server status', ['server' => $gserver['url']]);
+
+ Worker::add(PRIORITY_LOW, 'DiscoverPoCo', 'server', $gserver['url']);
+
+ if (++$updated > 250) {
+ return;
+ }
+ }
+ }
+}