diff options
author | Brion Vibber <brion@pobox.com> | 2010-02-09 12:39:31 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-02-09 12:39:31 -0800 |
commit | cd0f288fa725aebaf6cb9ae240c2b085000f6707 (patch) | |
tree | 2340429722a397ee6cfb88ef476b033071197fb5 | |
parent | 4c7ac503d44b8ca74f68e03dd297916691e7f884 (diff) |
Configurable delay between queuedaemon.php spawns/respawns to help stagger out startups and subscriptions. Defaults to 1 second.
$config['queue']['spawndelay'] = 1;
-rw-r--r-- | lib/default.php | 1 | ||||
-rw-r--r-- | lib/spawningdaemon.php | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/default.php b/lib/default.php index 485a08ba4..bf4b83718 100644 --- a/lib/default.php +++ b/lib/default.php @@ -88,6 +88,7 @@ $default = 'stomp_manual_failover' => true, // if multiple servers are listed, treat them as separate (enqueue on one randomly, listen on all) 'monitor' => null, // URL to monitor ping endpoint (work in progress) 'softlimit' => '90%', // total size or % of memory_limit at which to restart queue threads gracefully + 'spawndelay' => 1, // Wait at least N seconds between (re)spawns of child processes to avoid slamming the queue server with subscription startup 'debug_memory' => false, // true to spit memory usage to log 'inboxes' => true, // true to do inbox distribution & output queueing from in background via 'distrib' queue ), diff --git a/lib/spawningdaemon.php b/lib/spawningdaemon.php index b1961d688..862cbb4fa 100644 --- a/lib/spawningdaemon.php +++ b/lib/spawningdaemon.php @@ -83,6 +83,7 @@ abstract class SpawningDaemon extends Daemon $this->log(LOG_INFO, "Spawned thread $i as pid $pid"); $children[$i] = $pid; } + sleep(common_config('queue', 'spawndelay')); } $this->log(LOG_INFO, "Waiting for children to complete."); @@ -111,6 +112,7 @@ abstract class SpawningDaemon extends Daemon $this->log(LOG_INFO, "Respawned thread $i as pid $pid"); $children[$i] = $pid; } + sleep(common_config('queue', 'spawndelay')); } else { $this->log(LOG_INFO, "Thread $i pid $pid exited with status $exitCode; closing out thread."); } |