X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=scripts%2Fqueuedaemon.php;h=d372d898fa23f3d7a003973ac5e9edf4c36a20a0;hb=c201baffbfbf812ecba504e6829dd9e9d17a4bac;hp=bedd14b1a3fbce867534e2c3a0eeb8e4857ce52c;hpb=663e4e02a1b3b1c104c2c3db19e524a486c3d981;p=quix0rs-gnu-social.git diff --git a/scripts/queuedaemon.php b/scripts/queuedaemon.php index bedd14b1a3..d372d898fa 100755 --- a/scripts/queuedaemon.php +++ b/scripts/queuedaemon.php @@ -74,8 +74,6 @@ require_once(INSTALLDIR.'/lib/daemon.php'); require_once(INSTALLDIR.'/classes/Queue_item.php'); require_once(INSTALLDIR.'/classes/Notice.php'); -define('CLAIM_TIMEOUT', 1200); - /** * Queue handling daemon... * @@ -92,7 +90,7 @@ class QueueDaemon extends SpawningDaemon function __construct($id=null, $daemonize=true, $threads=1, $allsites=false) { parent::__construct($id, $daemonize, $threads); - $this->all = $allsites; + $this->allsites = $allsites; } /** @@ -108,14 +106,20 @@ class QueueDaemon extends SpawningDaemon $this->log(LOG_INFO, 'checking for queued notices'); $master = new QueueMaster($this->get_id()); - $master->init($this->all); - $master->service(); + $master->init($this->allsites); + try { + $master->service(); + } catch (Exception $e) { + common_log(LOG_ERR, "Unhandled exception: " . $e->getMessage() . ' ' . + str_replace("\n", " ", $e->getTraceAsString())); + return self::EXIT_ERR; + } $this->log(LOG_INFO, 'finished servicing the queue'); $this->log(LOG_INFO, 'terminating normally'); - return true; + return $master->respawn ? self::EXIT_RESTART : self::EXIT_SHUTDOWN; } } @@ -127,14 +131,16 @@ class QueueMaster extends IoMaster */ function initManagers() { - $classes = array(); - if (Event::handle('StartQueueDaemonIoManagers', array(&$classes))) { - $classes[] = 'QueueManager'; + $managers = array(); + if (Event::handle('StartQueueDaemonIoManagers', array(&$managers))) { + $qm = QueueManager::get(); + $qm->setActiveGroup('main'); + $managers[] = $qm; } - Event::handle('EndQueueDaemonIoManagers', array(&$classes)); + Event::handle('EndQueueDaemonIoManagers', array(&$managers)); - foreach ($classes as $class) { - $this->instantiate($class); + foreach ($managers as $manager) { + $this->instantiate($manager); } } }