workaround for stalling worker processes when running the daemon

This commit is contained in:
Michael 2018-07-11 06:05:22 +00:00
parent 3792e2819d
commit 3cb7a7606e
4 changed files with 10 additions and 8 deletions

View File

@ -106,8 +106,10 @@ if (!$foreground) {
} }
fclose(STDIN); // Close all of the standard fclose(STDIN); // Close all of the standard
fclose(STDOUT); // file descriptors as we
fclose(STDERR); // are running as a daemon. // Enabling this seem to block a running php process with 100% CPU usage when there is an outpout
// fclose(STDOUT); // file descriptors as we
// fclose(STDERR); // are running as a daemon.
dba::disconnect(); dba::disconnect();

View File

@ -63,4 +63,3 @@ Worker::unclaimProcess();
Worker::endProcess(); Worker::endProcess();
killme(); killme();

View File

@ -597,7 +597,7 @@ class Worker
['id' => $entry["id"]] ['id' => $entry["id"]]
); );
} else { } else {
logger("Worker process ".$entry["pid"]." (".implode(" ", $argv).") now runs for ".round($duration)." of ".$max_duration." allowed minutes. That's okay.", LOGGER_DEBUG); logger("Worker process ".$entry["pid"]." (".substr(json_encode($argv), 0, 50).") now runs for ".round($duration)." of ".$max_duration." allowed minutes. That's okay.", LOGGER_DEBUG);
} }
} }
} }

View File

@ -564,15 +564,16 @@ class GContact
if (strlen(Config::get('system', 'directory'))) { if (strlen(Config::get('system', 'directory'))) {
$x = Network::fetchUrl(get_server()."/pubsites"); $x = Network::fetchUrl(get_server()."/pubsites");
if ($x) { if (!empty($x)) {
$j = json_decode($x); $j = json_decode($x);
if ($j->entries) { if (!empty($j->entries)) {
foreach ($j->entries as $entry) { foreach ($j->entries as $entry) {
PortableContact::checkServer($entry->url); PortableContact::checkServer($entry->url);
$url = $entry->url . '/poco'; $url = $entry->url . '/poco';
if (!in_array($url, $done)) { if (!in_array($url, $done)) {
PortableContact::loadWorker(0, 0, 0, $entry->url . '/poco'); PortableContact::loadWorker(0, 0, 0, $url);
$done[] = $url;
} }
} }
} }