From 6845775ff929d36c8e84cf04660d5aebff70b6ed Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 1 Dec 2016 20:53:18 +0000 Subject: [PATCH] Store spooled data --- include/items.php | 5 +++-- include/poller.php | 3 +++ mod/worker.php | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/items.php b/include/items.php index 8aa292b30..6d45550a4 100644 --- a/include/items.php +++ b/include/items.php @@ -846,7 +846,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa } } else { // This can happen - for example - if there are locking timeouts. - logger("Item wasn't stored - we quit here."); q("ROLLBACK"); // 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; // 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)); + logger("Item wasn't stored - Item was spooled into file ".$file, LOGGER_DEBUG); return 0; } diff --git a/include/poller.php b/include/poller.php index b3a66fc38..925de3fe5 100644 --- a/include/poller.php +++ b/include/poller.php @@ -556,6 +556,9 @@ function clear_worker_processes() { function poller_run_cron() { 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 proc_run(PRIORITY_MEDIUM, "include/cron.php"); diff --git a/mod/worker.php b/mod/worker.php index aebffed74..c202a28d6 100644 --- a/mod/worker.php +++ b/mod/worker.php @@ -14,8 +14,10 @@ function worker_init($a){ 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")) { + call_worker_if_idle(); return; }