X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fqueuemanager.php;h=74e653e72e61ce575bde0ee692a5d6afbe6832e1;hb=722ff4d9c0cc47b5dda181136e03166eae712e87;hp=dde78264d03e8a90d8b56f2a269a591787c03cd0;hpb=1a0e17fea6347a95b8e28f12d129279836cf6156;p=quix0rs-gnu-social.git diff --git a/lib/queuemanager.php b/lib/queuemanager.php index dde78264d0..74e653e72e 100644 --- a/lib/queuemanager.php +++ b/lib/queuemanager.php @@ -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 @@ -67,9 +68,6 @@ abstract class QueueManager extends IoManager self::$qm = new UnQueueManager(); } else { switch ($type) { - case 'cron': - self::$qm = new GNUsocialCron(); - break; case 'db': self::$qm = new DBQueueManager(); break; @@ -183,7 +181,11 @@ abstract class QueueManager extends IoManager $object = unserialize($frame); // If it is a string, we really store a JSON object in there - if (is_string($object)) { + // except if it begins with '<', because then it is XML. + 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'); @@ -232,10 +234,8 @@ 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; + throw new NoQueueHandlerException($queue); } /** @@ -256,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. *