From 1b290f573acdd4f003b6ffcce6c0705ea461bd9d Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 2 Nov 2017 03:13:30 -0700 Subject: put deferred queue logic every place we create a delivery process (except for protocol 'friend requests' which aren't likely to swamp the delivery system). Remove it from the queue_delivery function which was too late to do anything. --- Zotlabs/Daemon/Ratenotif.php | 8 ++++++++ include/network.php | 11 +++++++++++ include/queue_fn.php | 8 -------- include/zot.php | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/Zotlabs/Daemon/Ratenotif.php b/Zotlabs/Daemon/Ratenotif.php index a94b89004..c7bf79854 100644 --- a/Zotlabs/Daemon/Ratenotif.php +++ b/Zotlabs/Daemon/Ratenotif.php @@ -88,6 +88,14 @@ class Ratenotif { 'msg' => json_encode($encoded_item) )); + + $x = q("select count(outq_hash) as total from outq where outq_delivered = 0"); + if(intval($x[0]['total']) > intval(get_config('system','force_queue_threshold',300))) { + logger('immediate delivery deferred.', LOGGER_DEBUG, LOG_INFO); + update_queue_item($hash); + continue; + } + $deliver[] = $hash; if(count($deliver) >= $deliveries_per_process) { diff --git a/include/network.php b/include/network.php index 2f29a70c4..73a6aeff2 100644 --- a/include/network.php +++ b/include/network.php @@ -1438,6 +1438,17 @@ function do_delivery($deliveries) { if(! (is_array($deliveries) && count($deliveries))) return; + + $x = q("select count(outq_hash) as total from outq where outq_delivered = 0"); + if(intval($x[0]['total']) > intval(get_config('system','force_queue_threshold',300))) { + logger('immediate delivery deferred.', LOGGER_DEBUG, LOG_INFO); + foreach($deliveries as $d) { + update_queue_item($d); + } + return; + } + + $interval = ((get_config('system','delivery_interval') !== false) ? intval(get_config('system','delivery_interval')) : 2 ); diff --git a/include/queue_fn.php b/include/queue_fn.php index c09033d0a..0d98e1e21 100644 --- a/include/queue_fn.php +++ b/include/queue_fn.php @@ -158,14 +158,6 @@ function queue_deliver($outq, $immediate = false) { } } - if($immediate) { - $x = q("select count(outq_hash) as total from outq where outq_delivered = 0"); - if(intval($x[0]['total']) > intval(get_config('system','force_queue_threshold',300))) { - logger('immediate delivery deferred.', LOGGER_DEBUG, LOG_INFO); - update_queue_item($outq['outq_hash']); - return; - } - } $arr = array('outq' => $outq, 'base' => $base, 'handled' => false, 'immediate' => $immediate); diff --git a/include/zot.php b/include/zot.php index bb87a234c..5764bb99a 100644 --- a/include/zot.php +++ b/include/zot.php @@ -3148,6 +3148,15 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { 'msg' => json_encode($info) )); + + $x = q("select count(outq_hash) as total from outq where outq_delivered = 0"); + if(intval($x[0]['total']) > intval(get_config('system','force_queue_threshold',300))) { + logger('immediate delivery deferred.', LOGGER_DEBUG, LOG_INFO); + update_queue_item($hash); + continue; + } + + Zotlabs\Daemon\Master::Summon(array('Deliver', $hash)); $total = $total - 1; @@ -3915,6 +3924,14 @@ function zot_reply_message_request($data) { 'msg' => $data_packet )); + + $x = q("select count(outq_hash) as total from outq where outq_delivered = 0"); + if(intval($x[0]['total']) > intval(get_config('system','force_queue_threshold',300))) { + logger('immediate delivery deferred.', LOGGER_DEBUG, LOG_INFO); + update_queue_item($hash); + continue; + } + /* * invoke delivery to send out the notify packet */ -- cgit v1.2.3