From eebea700193155b176ee9a9b338f1a0ad4b6aa40 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 29 Jan 2017 17:16:06 -0800 Subject: queue optimisations for sites that have lingered in the queue for more than a couple of days. --- include/queue_fn.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/include/queue_fn.php b/include/queue_fn.php index 74dde5de2..ede6c8f11 100644 --- a/include/queue_fn.php +++ b/include/queue_fn.php @@ -8,6 +8,21 @@ function update_queue_item($id, $add_priority = 0) { if(! $x) return; + + $y = q("select min(outq_created) as earliest from outq where outq_posturl = '%s'", + dbesc($x[0]['outq_posturl']) + ); + + // look for the oldest queue entry with this destination URL. If it's older than a couple of days, + // the destination is considered to be down and only scheduled once an hour, regardless of the + // age of the current queue item. + + $might_be_down = false; + + if($y) + $might_be_down = ((datetime_convert('UTC','UTC',$y[0]['earliest']) < datetime_convert('UTC','UTC','now - 2 days')) ? true : false); + + // Set all other records for this destination way into the future. // The queue delivers by destination. We'll keep one queue item for // this destination (this one) with a shorter delivery. If we succeed @@ -23,7 +38,7 @@ function update_queue_item($id, $add_priority = 0) { $since = datetime_convert('UTC','UTC',$x[0]['outq_created']); - if($since < datetime_convert('UTC','UTC','now - 12 hour')) { + if(($might_be_down) || ($since < datetime_convert('UTC','UTC','now - 12 hour'))) { $next = datetime_convert('UTC','UTC','now + 1 hour'); } else { -- cgit v1.2.3