Daily updating the server status

This commit is contained in:
Michael 2017-03-13 22:16:09 +00:00
parent eaf93dc041
commit a2b7b2a968
2 changed files with 36 additions and 1 deletions

View file

@ -123,6 +123,8 @@ function cron_run(&$argv, &$argc){
update_contact_birthdays(); update_contact_birthdays();
proc_run(PRIORITY_LOW, "include/discover_poco.php", "update_server");
proc_run(PRIORITY_LOW, "include/discover_poco.php", "suggestions"); proc_run(PRIORITY_LOW, "include/discover_poco.php", "suggestions");
set_config('system','last_expire_day',$d2); set_config('system','last_expire_day',$d2);

View file

@ -35,6 +35,7 @@ function discover_poco_run(&$argv, &$argc){
- checkcontact: Updates gcontact entries - checkcontact: Updates gcontact entries
- suggestions: Discover other servers for their contacts. - suggestions: Discover other servers for their contacts.
- server <poco url>: Searches for the poco server list. "poco url" is base64 encoded. - server <poco url>: Searches for the poco server list. "poco url" is base64 encoded.
- update_server: Frequently check the first 250 servers for vitality.
*/ */
if(($argc > 2) && ($argv[1] == "dirsearch")) { if(($argc > 2) && ($argv[1] == "dirsearch")) {
@ -46,6 +47,8 @@ function discover_poco_run(&$argv, &$argc){
$mode = 3; $mode = 3;
} elseif(($argc == 3) && ($argv[1] == "server")) { } elseif(($argc == 3) && ($argv[1] == "server")) {
$mode = 4; $mode = 4;
} elseif(($argc == 2) && ($argv[1] == "update_server")) {
$mode = 5;
} elseif ($argc == 1) { } elseif ($argc == 1) {
$search = ""; $search = "";
$mode = 0; $mode = 0;
@ -64,7 +67,9 @@ function discover_poco_run(&$argv, &$argc){
logger('start '.$search); logger('start '.$search);
if ($mode == 4) { if ($mode == 5) {
update_server();
} elseif ($mode == 4) {
$server_url = base64_decode($argv[2]); $server_url = base64_decode($argv[2]);
if ($server_url == "") { if ($server_url == "") {
return; return;
@ -102,6 +107,34 @@ function discover_poco_run(&$argv, &$argc){
return; return;
} }
/**
* @brief Updates the first 250 servers
*
*/
function update_server() {
$r = q("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()");
if (!dbm::is_result($r)) {
return;
}
$updated = 0;
foreach ($r AS $server) {
if (!poco_do_update($server["created"], "", $server["last_failure"], $server["last_contact"])) {
continue;
}
echo $server["url"]."\n";
logger('Update server status for server '.$server["url"], LOGGER_DEBUG);
proc_run(PRIORITY_LOW, "include/discover_poco.php", "server", base64_encode($server["url"]));
if (++$updated > 250) {
return;
}
}
}
function discover_users() { function discover_users() {
logger("Discover users", LOGGER_DEBUG); logger("Discover users", LOGGER_DEBUG);