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:
parent
bdf50a824e
commit
1b290f573a
@ -88,6 +88,14 @@ class Ratenotif {
|
|||||||
'msg' => json_encode($encoded_item)
|
'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;
|
$deliver[] = $hash;
|
||||||
|
|
||||||
if(count($deliver) >= $deliveries_per_process) {
|
if(count($deliver) >= $deliveries_per_process) {
|
||||||
|
@ -1438,6 +1438,17 @@ function do_delivery($deliveries) {
|
|||||||
if(! (is_array($deliveries) && count($deliveries)))
|
if(! (is_array($deliveries) && count($deliveries)))
|
||||||
return;
|
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)
|
$interval = ((get_config('system','delivery_interval') !== false)
|
||||||
? intval(get_config('system','delivery_interval')) : 2 );
|
? intval(get_config('system','delivery_interval')) : 2 );
|
||||||
|
|
||||||
|
@ -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);
|
$arr = array('outq' => $outq, 'base' => $base, 'handled' => false, 'immediate' => $immediate);
|
||||||
|
@ -3148,6 +3148,15 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
|
|||||||
'msg' => json_encode($info)
|
'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));
|
Zotlabs\Daemon\Master::Summon(array('Deliver', $hash));
|
||||||
$total = $total - 1;
|
$total = $total - 1;
|
||||||
|
|
||||||
@ -3915,6 +3924,14 @@ function zot_reply_message_request($data) {
|
|||||||
'msg' => $data_packet
|
'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
|
* invoke delivery to send out the notify packet
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user