From f4a71b76dd62a19aa8ee1c413932f48750e3794c Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 17 May 2018 23:43:44 +0000 Subject: [PATCH] Dynamic priority handling --- src/Model/PushSubscriber.php | 8 ++++++-- src/Worker/Queue.php | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Model/PushSubscriber.php b/src/Model/PushSubscriber.php index 2794a0b61..e982c1444 100644 --- a/src/Model/PushSubscriber.php +++ b/src/Model/PushSubscriber.php @@ -18,10 +18,14 @@ class PushSubscriber { // We'll push to each subscriber that has push > 0, // i.e. there has been an update (set in notifier.php). - $subscribers = dba::select('push_subscriber', ['id', 'callback_url'], ["`push` > 0 AND `next_try` < UTC_TIMESTAMP()"]); + $subscribers = dba::select('push_subscriber', ['id', 'push', 'callback_url'], ["`push` > 0 AND `next_try` < UTC_TIMESTAMP()"]); while ($subscriber = dba::fetch($subscribers)) { - logger("Publish feed to " . $subscriber["callback_url"], LOGGER_DEBUG); + // We always handle retries with low priority + if ($subscriber["push"] > 1) { + $priority = PRIORITY_LOW; + } + logger("Publish feed to " . $subscriber["callback_url"] . " with priority " . $priority, LOGGER_DEBUG); Worker::add($priority, 'PubSubPublish', (int)$subscriber["id"]); } diff --git a/src/Worker/Queue.php b/src/Worker/Queue.php index 50a9a5c91..256227fb6 100644 --- a/src/Worker/Queue.php +++ b/src/Worker/Queue.php @@ -35,7 +35,7 @@ class Queue logger('filling queue jobs - start'); // Handling the pubsubhubbub requests - PushSubscriber::publishFeed(PRIORITY_LOW); + PushSubscriber::publishFeed(); $r = dba::inArray(dba::p("SELECT `id` FROM `queue` WHERE `next` < UTC_TIMESTAMP() ORDER BY `batch`, `cid`"));