diff options
author | Brion Vibber <brion@pobox.com> | 2010-02-17 16:49:00 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-02-17 16:49:00 -0800 |
commit | ce6be4f83624d8c39a93d2b54567cc2f33580812 (patch) | |
tree | c121a3d5666c98649351fa04cc48e4c03a16db76 /lib/iomaster.php | |
parent | 73ba26efe3d9d97c478a507d351ac92d28d82655 (diff) |
Queues: redid the breakout control model so we can start up and subscribe to queues without running through the complete site list, which is ok at 1k sites but too slow at 10k.
All breakout queues that we're going to need to listen to now need to be explicitly listed in $config['queue']['breakout'].
Until XMPP is moved to component model, this setting will let the individual processes work with their own queues:
$config['queue']['breakout'][] = 'xmpp/xmppout/' . $config['site']['nickname'];
Diffstat (limited to 'lib/iomaster.php')
-rw-r--r-- | lib/iomaster.php | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/lib/iomaster.php b/lib/iomaster.php index 54e2dfe84..d20837ba5 100644 --- a/lib/iomaster.php +++ b/lib/iomaster.php @@ -55,27 +55,18 @@ abstract class IoMaster if ($multiSite !== null) { $this->multiSite = $multiSite; } - if ($this->multiSite) { - $this->sites = StatusNet::findAllSites(); - } else { - $this->sites = array(StatusNet::currentSite()); - } - - if (empty($this->sites)) { - throw new Exception("Empty status_network table, cannot init"); - } - foreach ($this->sites as $site) { - StatusNet::switchSite($site); - $this->initManagers(); - } + $this->initManagers(); } /** - * Initialize IoManagers for the currently configured site - * which are appropriate to this instance. + * Initialize IoManagers which are appropriate to this instance; + * pass class names or instances into $this->instantiate(). + * + * If setup and configuration may vary between sites in multi-site + * mode, it's the subclass's responsibility to set them up here. * - * Pass class names into $this->instantiate() + * Switching site configurations is an acceptable side effect. */ abstract function initManagers(); |