]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - scripts/queuedaemon.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / scripts / queuedaemon.php
index 30a8a9602630e439ca16736d829f25bbb10d6ce8..bdd630f3d5a2e6ef54c8ff3982a5fe7d8a27977b 100755 (executable)
@@ -68,14 +68,12 @@ Daemon script for running queued items.
 
 END_OF_QUEUE_HELP;
 
-require_once INSTALLDIR.'/scripts/commandline.inc';
+require_once INSTALLDIR.'/scripts/commandline.inc.php';
 
 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;
     }
 
     /**
@@ -107,8 +105,8 @@ class QueueDaemon extends SpawningDaemon
     {
         $this->log(LOG_INFO, 'checking for queued notices');
 
-        $master = new QueueMaster($this->get_id());
-        $master->init($this->all);
+        $master = new QueueMaster($this->get_id(), $this->processManager());
+        $master->init($this->allsites);
         try {
             $master->service();
         } catch (Exception $e) {
@@ -127,20 +125,30 @@ class QueueDaemon extends SpawningDaemon
 
 class QueueMaster extends IoMaster
 {
+    protected $processManager;
+
+    function __construct($id, $processManager)
+    {
+        parent::__construct($id);
+        $this->processManager = $processManager;
+    }
+
     /**
-     * Initialize IoManagers for the currently configured site
-     * which are appropriate to this instance.
+     * Initialize IoManagers which are appropriate to this instance.
      */
     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;
+            $managers[] = $this->processManager;
         }
-        Event::handle('EndQueueDaemonIoManagers', array(&$classes));
+        Event::handle('EndQueueDaemonIoManagers', array(&$managers));
 
-        foreach ($classes as $class) {
-            $this->instantiate($class);
+        foreach ($managers as $manager) {
+            $this->instantiate($manager);
         }
     }
 }