aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-01-29 17:16:06 -0800
committerzotlabs <mike@macgirvin.com>2017-01-29 17:16:06 -0800
commiteebea700193155b176ee9a9b338f1a0ad4b6aa40 (patch)
treede4ca983d40bbea0f63c9d7996dbe61e6f6c4bf8
parentdbf7ff979122ea0f8877e9ae4b16590f280593ef (diff)
downloadvolse-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.
-rw-r--r--include/queue_fn.php17
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 {