summaryrefslogtreecommitdiff
path: root/lib/iomaster.php
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-02-17 16:49:00 -0800
committerBrion Vibber <brion@pobox.com>2010-02-17 16:49:00 -0800
commitce6be4f83624d8c39a93d2b54567cc2f33580812 (patch)
treec121a3d5666c98649351fa04cc48e4c03a16db76 /lib/iomaster.php
parent73ba26efe3d9d97c478a507d351ac92d28d82655 (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.php23
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();