diff options
Diffstat (limited to 'include/queue.php')
-rw-r--r-- | include/queue.php | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/include/queue.php b/include/queue.php index 5467f2c20..239d61fc0 100644 --- a/include/queue.php +++ b/include/queue.php @@ -1,7 +1,8 @@ -<?php +<?php /** @file */ require_once("boot.php"); require_once('include/cli_startup.php'); require_once('include/queue_fn.php'); +require_once('include/zot.php'); function queue_run($argv, $argc){ @@ -32,21 +33,25 @@ function queue_run($argv, $argc){ // For the first 12 hours we'll try to deliver every 15 minutes // After that, we'll only attempt delivery once per hour. - - $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and (( outq_created > UTC_TIMESTAMP() - INTERVAL 12 HOUR and outq_updated < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( outq_updated < UTC_TIMESTAMP() - INTERVAL 1 HOUR ))"); + // This currently only handles the default queue drivers ('zot' or '') which we will group by posturl + // so that we don't start off a thousand deliveries for a couple of dead hubs. + // The zot driver will deliver everything destined for a single hub once contact is made (*if* contact is made). + // Other drivers will have to do something different here and may need their own query. + + $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and (( outq_created > UTC_TIMESTAMP() - INTERVAL 12 HOUR and outq_updated < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( outq_updated < UTC_TIMESTAMP() - INTERVAL 1 HOUR )) and outq_driver in ('','zot') group by outq_posturl"); } if(! $r) return; foreach($r as $rr) { - if(in_array($rr['outq_hub'],$deadguys)) + if(in_array($rr['outq_posturl'],$deadguys)) continue; $result = zot_zot($rr['outq_posturl'],$rr['outq_notify']); if($result['success']) { zot_process_response($rr['outq_posturl'],$result, $rr); } else { - $deadguys[] = $rr['outq_hub']; + $deadguys[] = $rr['outq_posturl']; $y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1", dbesc(datetime_convert()), dbesc($rr['outq_hash']) |