$last = Config::get('system', 'last_cron');
$poll_interval = intval(Config::get('system', 'cron_interval'));
- if (! $poll_interval) {
- $poll_interval = 10;
- }
if ($last) {
$next = $last + ($poll_interval * 60);
// Fork the cron jobs in separate parts to avoid problems when one of them is crashing
Hook::fork($a->queue['priority'], "cron");
- // run queue delivery process in the background
- Worker::add(PRIORITY_NEGLIGIBLE, "Queue");
-
// run the process to discover global contacts in the background
Worker::add(PRIORITY_LOW, "DiscoverPoCo");
/**
* @brief Poll contacts for unreceived messages
*
- * @todo Currently it seems as if the following parameter aren't used at all ...
+ * @todo Currently it seems as if the following parameter aren't used at all ...
*
- * @param string $parameter Parameter (force, restart, ...) for the contact polling
+ * @param string $parameter Parameter (force, restart, ...) for the contact polling
* @param integer $generation
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
private static function pollContacts($parameter, $generation) {
$manual_id = 0;
$generation = 0;
$force = false;
- $restart = false;
if ($parameter == 'force') {
$force = true;
}
if ($parameter == 'restart') {
- $restart = true;
$generation = intval($generation);
if (!$generation) {
exit();
Addon::reload();
- $d = DateTimeFormat::utcNow();
-
// Only poll from those with suitable relationships,
// and which have a polling address and ignore Diaspora since
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
FROM `user`
STRAIGHT_JOIN `contact`
ON `contact`.`uid` = `user`.`uid` AND `contact`.`poll` != ''
- AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s') $sql_extra
+ AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s', '%s') $sql_extra
AND NOT `contact`.`self` AND NOT `contact`.`blocked`
WHERE NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql",
+ DBA::escape(Protocol::ACTIVITYPUB),
DBA::escape(Protocol::DFRN),
DBA::escape(Protocol::OSTATUS),
DBA::escape(Protocol::DIASPORA),
$contact['priority'] = (!is_null($poll_interval) ? intval($poll_interval) : 3);
}
- // Check Diaspora contacts or followers once a week
- if (($contact["network"] == Protocol::DIASPORA) || ($contact["rel"] == Contact::FOLLOWER)) {
+ // Check ActivityPub and Diaspora contacts or followers once a week
+ if (in_array($contact["network"], [Protocol::ACTIVITYPUB, Protocol::DIASPORA]) || ($contact["rel"] == Contact::FOLLOWER)) {
$contact['priority'] = 4;
}
Logger::log("Polling " . $contact["network"] . " " . $contact["id"] . " " . $contact['priority'] . " " . $contact["nick"] . " " . $contact["name"]);
- Worker::add(['priority' => $priority, 'dont_fork' => true], 'OnePoll', (int)$contact['id']);
+ Worker::add(['priority' => $priority, 'dont_fork' => true, 'force_priority' => true], 'OnePoll', (int)$contact['id']);
}
}
}