From 93f061f78a8b914a731838058a38354a62d002de Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 15 Oct 2015 18:52:04 -0700 Subject: mail sync/migrate continued; also abstract delivery loop to make it re-usable, change refresh_all to use delivery loop. --- include/network.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'include/network.php') diff --git a/include/network.php b/include/network.php index e1793b405..c67c019ef 100644 --- a/include/network.php +++ b/include/network.php @@ -1677,13 +1677,40 @@ function format_and_send_email($sender,$xchan,$item) { 'additionalMailHeader' => '', )); +} + +function do_delivery($deliveries) { + if(! (is_array($deliveries) && count($deliveries))) + return; + $interval = ((get_config('system','delivery_interval') !== false) + ? intval(get_config('system','delivery_interval')) : 2 ); + $deliveries_per_process = intval(get_config('system','delivery_batch_count')); + if($deliveries_per_process <= 0) + $deliveries_per_process = 1; + $deliver = array(); + foreach($deliveries as $d) { + $deliver[] = $d; + + if(count($deliver) >= $deliveries_per_process) { + proc_run('php','include/deliver.php',$deliver); + $deliver = array(); + if($interval) + @time_sleep_until(microtime(true) + (float) $interval); + } + } + + // catch any stragglers + + if($deliver) + proc_run('php','include/deliver.php',$deliver); + } -- cgit v1.2.3