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(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();

View file

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

View file

@ -597,7 +597,7 @@ class Worker
['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);
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'))) {
$x = Network::fetchUrl(get_server()."/pubsites");
if ($x) {
if (!empty($x)) {
$j = json_decode($x);
if ($j->entries) {
if (!empty($j->entries)) {
foreach ($j->entries as $entry) {
PortableContact::checkServer($entry->url);
$url = $entry->url . '/poco';
if (! in_array($url, $done)) {
PortableContact::loadWorker(0, 0, 0, $entry->url . '/poco');
if (!in_array($url, $done)) {
PortableContact::loadWorker(0, 0, 0, $url);
$done[] = $url;
}
}
}