Пример #1
0
 public function handle($e)
 {
     $logger = Ergo::loggerFor($this);
     $task = $this->getLastTask();
     $prefix = "";
     $suffix = "";
     // print out the task
     printf("\n%sExecute Failed: %s => %s in %s%s\n", $prefix, get_class($task), $e->getMessage(), $e->getFile(), $suffix);
     $operations = array('r' => 'r = release [default]', 'b' => 'b = bury', 'd' => 'd = delete', 'q' => 'q = quit');
     // execute the action chosen for the task
     switch (strtolower($this->_readCommand($operations))) {
         case '':
         case 'r':
             parent::handle($e);
             break;
         case 'd':
             $logger->info("deleting task %s", get_class($task));
             $this->getQueue()->delete($task);
             break;
         case 'b':
             $logger->info("burying task %s", get_class($task));
             $this->getQueue()->bury($task);
             break;
         case 'q':
             exit(Sera_WorkerFarm::SPAWN_TERMINATE);
             break;
     }
 }
Пример #2
0
 /**
  * Constructor
  */
 public function __construct(Sera_Worker $worker = null)
 {
     $this->_logger = Ergo::loggerFor($this);
     if (!empty($worker)) {
         $this->addWorker($worker);
     }
 }
Пример #3
0
 /**
  * Constructor
  */
 function __construct($source, $destination, $queueName)
 {
     $this->logger = Ergo::loggerFor($this);
     // store for later access
     $this->_source = $source;
     $this->_destination = $destination;
     $this->_queueName = $queueName;
     // wire the queues
     $this->_source->listen($queueName);
     $this->_destination->select($queueName);
 }