]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/queuemanager.php
Avoid having to check for notices without rendered copies in upgrade.php
[quix0rs-gnu-social.git] / lib / queuemanager.php
index bc18e1fc56fe9e39ca6a769c8eec9dcdd46ff599..487104099a9e0c5d716be87e786907b9ae0980a2 100644 (file)
@@ -43,6 +43,7 @@ abstract class QueueManager extends IoManager
     protected $handlers = array();
     protected $groups = array();
     protected $activeGroups = array();
+    protected $ignoredTransports = array();
 
     /**
      * Factory function to pull the appropriate QueueManager object
@@ -181,7 +182,10 @@ abstract class QueueManager extends IoManager
 
         // If it is a string, we really store a JSON object in there
         // except if it begins with '<', because then it is XML.
-        if (is_string($object) && substr($object, 0, 1) != '<') {
+        if (is_string($object) &&
+            substr($object, 0, 1) != '<' &&
+            !is_numeric($object))
+        {
             $json = json_decode($object);
             if ($json === null) {
                 throw new Exception('Bad frame in queue item');
@@ -230,8 +234,6 @@ abstract class QueueManager extends IoManager
             } else {
                 $this->_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'");
             }
-        } else {
-            $this->_log(LOG_ERR, "Requested handler for unkown queue '$queue'");
         }
         return null;
     }
@@ -254,6 +256,17 @@ abstract class QueueManager extends IoManager
         return array_keys($queues);
     }
 
+    function getIgnoredTransports()
+    {
+        return array_keys($this->ignoredTransports);
+    }
+
+    function ignoreTransport($transport)
+    {
+        // key is used for uniqueness, value doesn't mean anything
+        $this->ignoredTransports[$transport] = true;
+    }
+
     /**
      * Initialize the list of queue handlers for the current site.
      *