From ef7db60fed8575c381801c0b998d9ed58aab1745 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 22 Jan 2010 17:14:41 -0500 Subject: [PATCH] Revert "Allow for instances as well as class names to be passed as queue handlers and iomanagers." Going to use brion's SpawningDaemon instead This reverts commit bd72e8b96e1bc360ba46a1864c6121f3b5f11235. --- lib/iomanager.php | 1 - lib/iomaster.php | 25 +++++++------------------ lib/queuemanager.php | 6 ++---- scripts/queuedaemon.php | 13 ++++--------- 4 files changed, 13 insertions(+), 32 deletions(-) diff --git a/lib/iomanager.php b/lib/iomanager.php index f9d97d6a97..ee2ff958b9 100644 --- a/lib/iomanager.php +++ b/lib/iomanager.php @@ -31,7 +31,6 @@ abstract class IoManager { - const GLOBAL_SINGLE_ONLY = -1; const SINGLE_ONLY = 0; const INSTANCE_PER_SITE = 1; const INSTANCE_PER_PROCESS = 2; diff --git a/lib/iomaster.php b/lib/iomaster.php index 979f73e753..ce77b53b2e 100644 --- a/lib/iomaster.php +++ b/lib/iomaster.php @@ -32,7 +32,6 @@ class IoMaster public $id; protected $multiSite = false; - protected $includeGlobalSingletons = true; protected $managers = array(); protected $singletons = array(); @@ -48,9 +47,8 @@ class IoMaster $this->monitor = new QueueMonitor(); } - public function init($multiSite=null, $includeGlobalSingletons = true) + public function init($multiSite=null) { - $this->includeGlobalSingletons = $includeGlobalSingletons; if ($multiSite !== null) { $this->multiSite = $multiSite; } @@ -109,7 +107,7 @@ class IoMaster */ protected function instantiate($class) { - if (is_string($class) && isset($this->singletons[$class])) { + if (isset($this->singletons[$class])) { // Already instantiated a multi-site-capable handler. // Just let it know it should listen to this site too! $this->singletons[$class]->addSite(common_config('site', 'server')); @@ -118,34 +116,25 @@ class IoMaster $manager = $this->getManager($class); - $caps = $manager->multiSite(); if ($this->multiSite) { + $caps = $manager->multiSite(); if ($caps == IoManager::SINGLE_ONLY) { throw new Exception("$class can't run with --all; aborting."); } - if ($caps == IoManager::INSTANCE_PER_PROCESS || - ( $this->includeGlobalSingletons && $caps == IoManager::GLOBAL_SINGLE_ONLY )) { + if ($caps == IoManager::INSTANCE_PER_PROCESS) { // Save this guy for later! // We'll only need the one to cover multiple sites. - if (is_string($class)){ - $this->singletons[$class] = $manager; - } + $this->singletons[$class] = $manager; $manager->addSite(common_config('site', 'server')); } } - if( $this->includeGlobalSingletons || $caps != IoManager::GLOBAL_SINGLE_ONLY ) { - $this->managers[] = $manager; - } + $this->managers[] = $manager; } protected function getManager($class) { - if(is_object($class)){ - return $class; - }else{ - return call_user_func(array($class, 'get')); - } + return call_user_func(array($class, 'get')); } /** diff --git a/lib/queuemanager.php b/lib/queuemanager.php index b20a934687..291174d3c4 100644 --- a/lib/queuemanager.php +++ b/lib/queuemanager.php @@ -119,9 +119,7 @@ abstract class QueueManager extends IoManager { if (isset($this->handlers[$queue])) { $class = $this->handlers[$queue]; - if(is_object($class)) { - return $class; - } else if (class_exists($class)) { + if (class_exists($class)) { return new $class(); } else { common_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'"); @@ -184,7 +182,7 @@ abstract class QueueManager extends IoManager * Only registered transports will be reliably picked up! * * @param string $transport - * @param string $class class name or object instance + * @param string $class */ public function connect($transport, $class) { diff --git a/scripts/queuedaemon.php b/scripts/queuedaemon.php index 6cce4eaa75..162f617e0d 100755 --- a/scripts/queuedaemon.php +++ b/scripts/queuedaemon.php @@ -122,7 +122,7 @@ class QueueDaemon extends Daemon if ($this->threads > 1) { return $this->runThreads(); } else { - return $this->runLoop(true); + return $this->runLoop(); } } @@ -176,8 +176,7 @@ class QueueDaemon extends Daemon { $this->set_id($this->get_id() . "." . $thread); $this->resetDb(); - //only include global singletons on the first thread - $this->runLoop($thread == 1); + $this->runLoop(); } /** @@ -214,18 +213,14 @@ class QueueDaemon extends Daemon * * Most of the time this won't need to be overridden in a subclass. * - * @param boolean $includeGlobalSingletons Include IoManagers that are - * global singletons (should only be one instance - regardless of how - * many processes or sites there are) - * * @return boolean true on success, false on failure */ - function runLoop($includeGlobalSingletons) + function runLoop() { $this->log(LOG_INFO, 'checking for queued notices'); $master = new IoMaster($this->get_id()); - $master->init($this->all, $includeGlobalSingletons); + $master->init($this->all); $master->service(); $this->log(LOG_INFO, 'finished servicing the queue');