diff options
author | zotlabs <mike@macgirvin.com> | 2017-01-29 17:16:06 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-01-29 17:16:06 -0800 |
commit | eebea700193155b176ee9a9b338f1a0ad4b6aa40 (patch) | |
tree | de4ca983d40bbea0f63c9d7996dbe61e6f6c4bf8 /include | |
parent | dbf7ff979122ea0f8877e9ae4b16590f280593ef (diff) | |
download | volse-hubzilla-eebea700193155b176ee9a9b338f1a0ad4b6aa40.tar.gz volse-hubzilla-eebea700193155b176ee9a9b338f1a0ad4b6aa40.tar.bz2 volse-hubzilla-eebea700193155b176ee9a9b338f1a0ad4b6aa40.zip |
queue optimisations for sites that have lingered in the queue for more than a couple of days.
Diffstat (limited to 'include')
-rw-r--r-- | include/queue_fn.php | 17 |
1 files changed, 16 insertions, 1 deletions
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 { |