X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcron.php;h=70b87e969618cac8dbbbc9b87a727e8e657e81cc;hb=5aee2fde1bbbe8ed3ba7f91c5916ff291758ec15;hp=21ce9e7c65404c74542a5f73c5bfa3212bc9b8f0;hpb=5a6da8b447430174ae231a3b8203fd4bd8416cc1;p=friendica.git diff --git a/include/cron.php b/include/cron.php index 21ce9e7c65..70b87e9696 100644 --- a/include/cron.php +++ b/include/cron.php @@ -1,10 +1,11 @@ 1) { @@ -12,12 +13,13 @@ function cron_run(&$argv, &$argc){ return; } - $last = get_config('system','last_cron'); + $last = get_config('system', 'last_cron'); - $poll_interval = intval(get_config('system','cron_interval')); + $poll_interval = intval(get_config('system', 'cron_interval')); if (! $poll_interval) { $poll_interval = 10; } + if ($last) { $next = $last + ($poll_interval * 60); if ($next > time()) { @@ -62,8 +64,8 @@ function cron_run(&$argv, &$argc){ proc_run(PRIORITY_LOW, "include/cronjobs.php", "repair_database"); // once daily run birthday_updates and then expire in background - $d1 = get_config('system','last_expire_day'); - $d2 = intval(datetime_convert('UTC','UTC','now','d')); + $d1 = get_config('system', 'last_expire_day'); + $d2 = intval(datetime_convert('UTC', 'UTC', 'now', 'd')); if ($d2 != intval($d1)) { @@ -73,7 +75,7 @@ function cron_run(&$argv, &$argc){ proc_run(PRIORITY_LOW, "include/discover_poco.php", "suggestions"); - set_config('system','last_expire_day',$d2); + set_config('system', 'last_expire_day', $d2); proc_run(PRIORITY_LOW, 'include/expire.php'); @@ -87,7 +89,7 @@ function cron_run(&$argv, &$argc){ logger('cron: end'); - set_config('system','last_cron', time()); + set_config('system', 'last_cron', time()); return; } @@ -120,6 +122,8 @@ function cron_poll_contacts($argc, $argv) { $force = true; } + $min_poll_interval = Config::get('system', 'min_poll_interval', 1); + $sql_extra = (($manual_id) ? " AND `id` = $manual_id " : ""); reload_plugins(); @@ -130,7 +134,7 @@ function cron_poll_contacts($argc, $argv) { // and which have a polling address and ignore Diaspora since // we are unable to match those posts with a Diaspora GUID and prevent duplicates. - $abandon_days = intval(get_config('system','account_abandon_days')); + $abandon_days = intval(get_config('system', 'account_abandon_days')); if ($abandon_days < 1) { $abandon_days = 0; } @@ -156,7 +160,7 @@ function cron_poll_contacts($argc, $argv) { dbesc(NETWORK_MAIL2) ); - if (!count($contacts)) { + if (!dbm::is_result($contacts)) { return; } @@ -183,49 +187,53 @@ function cron_poll_contacts($argc, $argv) { } if ($contact['subhub'] AND in_array($contact['network'], array(NETWORK_DFRN, NETWORK_ZOT, NETWORK_OSTATUS))) { - // We should be getting everything via a hub. But just to be sure, let's check once a day. - // (You can make this more or less frequent if desired by setting 'pushpoll_frequency' appropriately) - // This also lets us update our subscription to the hub, and add or replace hubs in case it - // changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'. - - $poll_interval = get_config('system','pushpoll_frequency'); + /* + * We should be getting everything via a hub. But just to be sure, let's check once a day. + * (You can make this more or less frequent if desired by setting 'pushpoll_frequency' appropriately) + * This also lets us update our subscription to the hub, and add or replace hubs in case it + * changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'. + */ + $poll_interval = get_config('system', 'pushpoll_frequency'); $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3); } - if ($contact['priority'] AND !$force) { - - $update = false; + if (($contact['priority'] >= 0) AND !$force) { + $update = false; $t = $contact['last-update']; - /** + /* * Based on $contact['priority'], should we poll this site now? Or later? */ - switch ($contact['priority']) { case 5: - if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month")) { + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 month")) { $update = true; } break; case 4: - if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week")) { + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 week")) { $update = true; } break; case 3: - if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) { + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 day")) { $update = true; } break; case 2: - if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour")) { + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 12 hour")) { $update = true; } break; case 1: + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 hour")) { + $update = true; + } + break; + case 0: default: - if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour")) { + if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + ".$min_poll_interval." minute")) { $update = true; } break; @@ -235,13 +243,14 @@ function cron_poll_contacts($argc, $argv) { } } - logger("Polling ".$contact["network"]." ".$contact["id"]." ".$contact["nick"]." ".$contact["name"]); + logger("Polling " . $contact["network"] . " " . $contact["id"] . " " . $contact["nick"] . " " . $contact["name"]); if (($contact['network'] == NETWORK_FEED) AND ($contact['priority'] <= 3)) { - proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', intval($contact['id'])); + $priority = PRIORITY_MEDIUM; } else { - proc_run(PRIORITY_LOW, 'include/onepoll.php', intval($contact['id'])); + $priority = PRIORITY_LOW; } + proc_run(array('priority' => $priority, 'dont_fork' => true), 'include/onepoll.php', intval($contact['id'])); } } -} \ No newline at end of file +}