Prevent double execution

This commit is contained in:
Michael Vogel 2015-09-28 21:58:58 +02:00
parent eb75d9532b
commit f0cf9ce519

View File

@ -76,11 +76,18 @@ function poller_run(&$argv, &$argc){
if (poller_too_much_workers()) if (poller_too_much_workers())
return; return;
q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d", q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d AND `executed` = '0000-00-00 00:00:00'",
dbesc(datetime_convert()), dbesc(datetime_convert()),
intval(getmypid()), intval(getmypid()),
intval($r[0]["id"])); intval($r[0]["id"]));
// Assure that there are no tasks executed twice
$id = q("SELECT `id` FROM `workerqueue` WHERE `id` = %d AND `pid` = %d",
intval($r[0]["id"]),
intval(getmypid()));
if (!$id)
continue;
$argv = json_decode($r[0]["parameter"]); $argv = json_decode($r[0]["parameter"]);
$argc = count($argv); $argc = count($argv);