aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-11-02 03:13:30 -0700
committerzotlabs <mike@macgirvin.com>2017-11-02 03:13:30 -0700
commit1b290f573acdd4f003b6ffcce6c0705ea461bd9d (patch)
tree262a1c0a418227784cfec6f9d40875edd9b9923c
parentbdf50a824e6ee7f72532ba9b6e31c8730a8a497e (diff)
downloadvolse-hubzilla-1b290f573acdd4f003b6ffcce6c0705ea461bd9d.tar.gz
volse-hubzilla-1b290f573acdd4f003b6ffcce6c0705ea461bd9d.tar.bz2
volse-hubzilla-1b290f573acdd4f003b6ffcce6c0705ea461bd9d.zip
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.
-rw-r--r--Zotlabs/Daemon/Ratenotif.php8
-rw-r--r--include/network.php11
-rw-r--r--include/queue_fn.php8
-rw-r--r--include/zot.php17
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
*/