]> git.mxchange.org Git - friendica.git/commitdiff
Reschedule killed processes at the beginning of the queue.
authorMichael Vogel <icarus@dabo.de>
Thu, 4 Aug 2016 13:33:15 +0000 (15:33 +0200)
committerMichael Vogel <icarus@dabo.de>
Thu, 4 Aug 2016 13:33:15 +0000 (15:33 +0200)
include/poller.php

index dfc3b90cf08c4249df88095cfc65b67663e2ca4f..578f1424eb142a4446a1333fad8befe4ead6f537 100644 (file)
@@ -235,9 +235,10 @@ function poller_kill_stale_workers() {
                                logger("Worker process ".$pid["pid"]." took more than 3 hours. It will be killed now.");
                                posix_kill($pid["pid"], SIGTERM);
 
-                               // Question: If a process is stale: Should we remove it or should we reschedule it?
-                               // By now we rescheduling it. It's maybe not the wisest decision?
-                               q("UPDATE `workerqueue` SET `executed` = '0000-00-00 00:00:00', `pid` = 0 WHERE `pid` = %d",
+                               // We killed the stale process.
+                               // To avoid a blocking situation we reschedule the process at the beginning of the queue.
+                               q("UPDATE `workerqueue` SET `executed` = '0000-00-00 00:00:00', `created` = '%s', `pid` = 0 WHERE `pid` = %d",
+                                       dbesc(datetime_convert()),
                                        intval($pid["pid"]));
                        } else
                                logger("Worker process ".$pid["pid"]." now runs for ".round($duration)." minutes. That's okay.", LOGGER_DEBUG);