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.

This commit is contained in:
zotlabs
2017-11-02 03:13:30 -07:00
parent bdf50a824e
commit 1b290f573a
4 changed files with 36 additions and 8 deletions

View File

@@ -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 );