示例#1
0
 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'));
 }
示例#2
0
文件: run.php 项目: nowelium/Hermit
<?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);
// }
//