Browse Source

workaround for stalling worker processes when running the daemon

pull/5363/head
Michael 3 years ago
parent
commit
3cb7a7606e
  1. 6
      bin/daemon.php
  2. 1
      bin/worker.php
  3. 2
      src/Core/Worker.php
  4. 9
      src/Model/GContact.php

6
bin/daemon.php

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

1
bin/worker.php

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

2
src/Core/Worker.php

@ -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);
}
}
}

9
src/Model/GContact.php

@ -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;
}
}
}

Loading…
Cancel
Save