/** * Perform necessary actions to start a worker. */ protected function startup() { $this->log(array('message' => 'Starting worker ' . $this, 'data' => array('type' => 'start', 'worker' => (string) $this)), self::LOG_TYPE_INFO); $this->registerSigHandlers(); $this->pruneDeadWorkers(); Event::trigger('beforeFirstFork', $this); $this->registerWorker(); }
/** * Create a new job and save it to the specified queue. * * @param string $queue The name of the queue to place the job in. * @param string $class The name of the class that contains the code to execute the job. * @param array $args Any optional arguments that should be passed when the job is executed. * @param boolean $trackStatus Set to true to be able to monitor the status of a job. * * @return string */ public static function enqueue($queue, $class, $args = null, $trackStatus = false) { $result = Job::create($queue, $class, $args, $trackStatus); if ($result) { Event::trigger('afterEnqueue', array('class' => $class, 'args' => $args, 'queue' => $queue)); } return $result; }
/** * Mark the current job as having failed. * * @param $exception */ public function fail($exception) { Event::trigger('onFailure', array('exception' => $exception, 'job' => $this)); $this->updateStatus(Status::STATUS_FAILED); require_once dirname(__FILE__) . '/Failure.php'; Failure::create($this->payload, $exception, $this->worker, $this->queue); Stat::incr('failed'); Stat::incr('failed:' . $this->worker); }