delivery optimisations
This commit is contained in:
parent
e558ddae3f
commit
98f656cfcb
29
include/deliver_hooks.php
Normal file
29
include/deliver_hooks.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
|
||||
require_once('include/cli_startup.php');
|
||||
require_once('include/zot.php');
|
||||
|
||||
|
||||
function deliver_hooks_run($argv, $argc) {
|
||||
|
||||
cli_startup();
|
||||
|
||||
$a = get_app();
|
||||
|
||||
if($argc < 2)
|
||||
return;
|
||||
|
||||
|
||||
$r = q("select * from item where id = '%d'",
|
||||
intval($argv[1])
|
||||
);
|
||||
if($r)
|
||||
call_hooks('notifier_normal',$r[0]);
|
||||
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
deliver_hooks_run($argv,$argc);
|
||||
killme();
|
||||
}
|
@ -579,7 +579,7 @@ function notifier_run($argv, $argc){
|
||||
if($deliveries_per_process <= 0)
|
||||
$deliveries_per_process = 1;
|
||||
|
||||
$deliver = array();
|
||||
$deliveries = array();
|
||||
|
||||
foreach($dhubs as $hub) {
|
||||
|
||||
@ -675,7 +675,7 @@ function notifier_run($argv, $argc){
|
||||
);
|
||||
}
|
||||
}
|
||||
$deliver[] = $hash;
|
||||
$deliveries[] = $hash;
|
||||
|
||||
if(count($deliver) >= $deliveries_per_process) {
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
@ -685,18 +685,35 @@ function notifier_run($argv, $argc){
|
||||
}
|
||||
}
|
||||
|
||||
// catch any stragglers
|
||||
|
||||
if(count($deliver)) {
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
if($normal_mode) {
|
||||
$x = q("select * from hook where hook = 'notifier_normal'");
|
||||
if($x)
|
||||
proc_run('php','deliver_hooks.php', $target_item['id']);
|
||||
}
|
||||
|
||||
if($deliveries) {
|
||||
$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);
|
||||
|
||||
logger('notifier: basic loop complete.', LOGGER_DEBUG);
|
||||
|
||||
if($normal_mode)
|
||||
call_hooks('notifier_normal',$target_item);
|
||||
|
||||
|
||||
call_hooks('notifier_end',$target_item);
|
||||
|
||||
logger('notifer: complete.');
|
||||
|
Reference in New Issue
Block a user