- public function pop( $type = self::TYPE_DEFAULT ) {
- $types = ( $type == self::TYPE_DEFAULT )
- ? $this->getDefaultQueueTypes()
- : $this->getQueueTypes();
+ public function pop( $queueType = self::TYPE_DEFAULT, $flags = 0 ) {
+ if ( $flags & self::USE_CACHE ) {
+ if ( !$this->cache->has( 'queues-ready', 'list', self::PROC_CACHE_TTL ) ) {
+ $this->cache->set( 'queues-ready', 'list', $this->getQueuesWithJobs() );
+ }
+ $types = $this->cache->get( 'queues-ready', 'list' );
+ } else {
+ $types = $this->getQueuesWithJobs();
+ }
+
+ if ( $queueType == self::TYPE_DEFAULT ) {
+ $types = array_intersect( $types, $this->getDefaultQueueTypes() );
+ }