Store spooled data

This commit is contained in:
Michael 2016-12-01 20:53:18 +00:00
parent c5d571287c
commit 6845775ff9
3 changed files with 9 additions and 3 deletions

View File

@ -846,7 +846,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
} }
} else { } else {
// This can happen - for example - if there are locking timeouts. // This can happen - for example - if there are locking timeouts.
logger("Item wasn't stored - we quit here.");
q("ROLLBACK"); q("ROLLBACK");
// Store the data into a spool file so that we can try again later. // Store the data into a spool file so that we can try again later.
@ -856,8 +855,10 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
$arr['dsprsig'] = $encoded_signature; $arr['dsprsig'] = $encoded_signature;
// Now we store the data in the spool directory // Now we store the data in the spool directory
$spool = get_spoolpath().'/'.round(microtime(true) * 10000).".msg"; $file = 'item-'.round(microtime(true) * 10000).".msg";
$spool = get_spoolpath().'/'.$file;
file_put_contents($spool, json_encode($arr)); file_put_contents($spool, json_encode($arr));
logger("Item wasn't stored - Item was spooled into file ".$file, LOGGER_DEBUG);
return 0; return 0;
} }

View File

@ -556,6 +556,9 @@ function clear_worker_processes() {
function poller_run_cron() { function poller_run_cron() {
logger('Add cron entries', LOGGER_DEBUG); logger('Add cron entries', LOGGER_DEBUG);
// Check for spooled items
proc_run(PRIORITY_HIGH, "include/spool_post.php");
// Run the cron job that calls all other jobs // Run the cron job that calls all other jobs
proc_run(PRIORITY_MEDIUM, "include/cron.php"); proc_run(PRIORITY_MEDIUM, "include/cron.php");

View File

@ -14,8 +14,10 @@ function worker_init($a){
return; return;
} }
// We don't need the following lines if we can execute background jobs // We don't need the following lines if we can execute background jobs.
// So we just wake up the worker if it sleeps.
if (function_exists("proc_open")) { if (function_exists("proc_open")) {
call_worker_if_idle();
return; return;
} }