]> git.mxchange.org Git - friendica.git/blob - src/Worker/UpdateServers.php
Merge remote-tracking branch 'upstream/2019.12-rc' into poco-cleanup
[friendica.git] / src / Worker / UpdateServers.php
1 <?php
2 /**
3  * @file src/Worker/UpdateServers.php
4  */
5 namespace Friendica\Worker;
6
7 use Friendica\Core\Logger;
8 use Friendica\Core\Worker;
9 use Friendica\Database\DBA;
10 use Friendica\Protocol\PortableContact;
11
12 class UpdateServers
13 {
14         /**
15          * @brief Updates the first 250 servers
16          *
17          */
18         public static function execute()
19         {
20                 $gservers = DBA::p("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()");
21                 if (!DBA::isResult($gservers)) {
22                         return;
23                 }
24
25                 $updated = 0;
26
27                 while ($gserver == DBA::fetch($gservers)) {
28                         if (!PortableContact::updateNeeded($gserver['created'], '', $gserver['last_failure'], $gserver['last_contact'])) {
29                                 continue;
30                         }
31                         Logger::info('Update server status', ['server' => $gserver['url']]);
32
33                         Worker::add(PRIORITY_LOW, 'CheckServer', $gserver['url']);
34
35                         if (++$updated > 250) {
36                                 return;
37                         }
38                 }
39         }
40 }