コード例 #1
0
 /**
  * Retrieves a queue worker
  *
  * @param \josegonzalez\Queuesadilla\Engine\Base $engine engine to run
  * @param \Psr\Log\LoggerInterface $logger logger
  * @return \josegonzalez\Queuesadilla\Worker\Base
  */
 public function getWorker($engine, $logger)
 {
     $worker = parent::getWorker($engine, $logger);
     $worker->attachListener('Worker.job.exception', function ($event) {
         $exception = $event->data['exception'];
         $exception->job = $event->data['job'];
         $sentryHandler = new SentryHandler();
         $sentryHandler->handle($exception);
     });
     $worker->attachListener('Worker.job.success', function ($event) {
         ConnectionManager::get('default')->disconnect();
     });
     $worker->attachListener('Worker.job.failure', function ($event) {
         $failedJob = $event->data['job'];
         $failedItem = $failedJob->item();
         $options = ['queue' => 'failed', 'failedJob' => $failedJob];
         Queue::push($failedItem['class'], $failedJob->data(), $options);
         ConnectionManager::get('default')->disconnect();
     });
     return $worker;
 }
コード例 #2
0
 /**
  * Push a single job onto the queue.
  *
  * @param string $callable    a job callable
  * @param array  $args        an array of data to set for the job
  * @param array  $options     an array of options for publishing the job
  * @return bool the result of the push
  */
 protected function push($callable, $args = [], $options = [])
 {
     return Queue::push($callable, $args, $options);
 }