]> git.mxchange.org Git - friendica.git/commitdiff
Only kill the first stale process
authorMichael <heluecht@pirati.ca>
Tue, 4 Jul 2017 05:01:06 +0000 (05:01 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 4 Jul 2017 05:01:06 +0000 (05:01 +0000)
include/poller.php

index 50d883644d302a8b0f6cd17ca28171e325e8d13b..4c0f66596388b50ba93d3c29b264156e781e8bfa 100644 (file)
@@ -470,12 +470,12 @@ function poller_max_connections_reached() {
  *
  */
 function poller_kill_stale_workers() {
-       $entries = dba::p("SELECT `pid`, `executed`, `priority`, `parameter` FROM `workerqueue` WHERE `executed` > ? AND NOT `done` AND `pid` != 0 ORDER BY `priority`, `created`", NULL_DATE);
+       $entries = dba::p("SELECT `id`, `pid`, `executed`, `priority`, `parameter` FROM `workerqueue` WHERE `executed` > ? AND NOT `done` AND `pid` != 0 ORDER BY `priority`, `created`", NULL_DATE);
 
        while ($entry = dba::fetch($entries)) {
                if (!posix_kill($entry["pid"], 0)) {
                        dba::update('workerqueue', array('executed' => NULL_DATE, 'pid' => 0),
-                                       array('pid' => $entry["pid"], 'done' => false));
+                                       array('id' => $entry["id"]));
                } else {
                        // Kill long running processes
                        // Check if the priority is in a valid range
@@ -508,7 +508,7 @@ function poller_kill_stale_workers() {
                                }
                                dba::update('workerqueue',
                                                array('executed' => NULL_DATE, 'created' => datetime_convert(), 'priority' => $new_priority, 'pid' => 0),
-                                               array('pid' => $entry["pid"], 'done' => false));
+                                               array('id' => $entry["id"]));
                        } else {
                                logger("Worker process ".$entry["pid"]." (".implode(" ", $argv).") now runs for ".round($duration)." of ".$max_duration." allowed minutes. That's okay.", LOGGER_DEBUG);
                        }