Configurable delay between queuedaemon.php spawns/respawns to help stagger out startups and subscriptions. Defaults to 1 second.

$config['queue']['spawndelay'] = 1;
This commit is contained in:
Brion Vibber 2010-02-09 12:39:31 -08:00
parent 4c7ac503d4
commit cd0f288fa7
2 changed files with 3 additions and 0 deletions

View File

@ -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) '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) '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 '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 '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 'inboxes' => true, // true to do inbox distribution & output queueing from in background via 'distrib' queue
), ),

View File

@ -83,6 +83,7 @@ abstract class SpawningDaemon extends Daemon
$this->log(LOG_INFO, "Spawned thread $i as pid $pid"); $this->log(LOG_INFO, "Spawned thread $i as pid $pid");
$children[$i] = $pid; $children[$i] = $pid;
} }
sleep(common_config('queue', 'spawndelay'));
} }
$this->log(LOG_INFO, "Waiting for children to complete."); $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"); $this->log(LOG_INFO, "Respawned thread $i as pid $pid");
$children[$i] = $pid; $children[$i] = $pid;
} }
sleep(common_config('queue', 'spawndelay'));
} else { } else {
$this->log(LOG_INFO, "Thread $i pid $pid exited with status $exitCode; closing out thread."); $this->log(LOG_INFO, "Thread $i pid $pid exited with status $exitCode; closing out thread.");
} }