public function __construct($targetClass, $timeout = self::DEFAULT_QUEUE_TIMEOUT) { $hermit = new parent($targetClass); $it = new HermitQueueIterator($hermit); $reflector = $hermit->context->getTargetClass(); if (!$reflector->hasConstant('TABLE')) { throw new RuntimeException($hermit->context->getName() . ' has not constant "TABLE"'); } $it->setTable($reflector->getConstant('TABLE')); $it->setTimeout($timeout); $this->queue = $hermit; $this->iterator = $it; $this->filter = new HermitQueueFilter($it); $this->logger = HermitLoggerManager::getLogger(); register_shutdown_function(array($this, '__destruct')); }
<?php $hermit = new Hermit('HogeQueue'); $it = new HermitQueueIterator($hermit); $it->setTable('hoge_queue'); $it->setTimeout(2); echo 'start', PHP_EOL; $filter = new HermitQueueFilter($it); foreach ($filter as $key => $queue) { var_dump($key, $queue->get()); $queue->complete(); echo 'next', PHP_EOL; sleep(2); } // // equals. // // $iterator = new HermitQ('HogeQueue', 2); // echo 'start', PHP_EOL; // foreach($iterator as $key => $queue){ // var_dump($key, $queue->get()); // $queue->complete(); // // echo 'next', PHP_EOL; // sleep(2); // } //