. * */ namespace Friendica\Worker; use Friendica\Core\Logger; use Friendica\Core\Worker; use Friendica\Database\DBA; class UpdateGServers { /** * Updates up to 100 servers */ public static function execute() { $updating = Worker::countWorkersByCommand('UpdateGServer'); $limit = 100 - $updating; if ($limit <= 0) { Logger::info('The number of currently running jobs exceed the limit'); return; } $outdated = DBA::count('gserver', ["`next_contact` < UTC_TIMESTAMP()"]); $total = DBA::count('gserver'); Logger::info('Server status', ['total' => $total, 'outdated' => $outdated, 'updating' => $limit]); $gservers = DBA::select('gserver', ['url'], ["`next_contact` < UTC_TIMESTAMP()"], ['limit' => $limit]); if (!DBA::isResult($gservers)) { return; } $count = 0; while ($gserver = DBA::fetch($gservers)) { Worker::add(PRIORITY_LOW, 'UpdateGServer', $gserver['url'], false, true); $count++; } DBA::close($gservers); Logger::info('Updated servers', ['count' => $count]); } }