public function handle($e) { $logger = Ergo::loggerFor($this); $task = $this->getLastTask(); $prefix = "[31m"; $suffix = "[0m"; // 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; } }
/** * Constructor */ public function __construct(Sera_Worker $worker = null) { $this->_logger = Ergo::loggerFor($this); if (!empty($worker)) { $this->addWorker($worker); } }
/** * 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); }