Esempio n. 1
0
 /**
  * @param \DelayedJobs\DelayedJob\Job $job Job that failed
  * @param string|\Throwable $message Message to store with the jbo
  * @param bool $burryJob Should the job be burried
  * @return bool|\DelayedJobs\DelayedJob\Job
  */
 public function failed(Job $job, $message, $burryJob = false)
 {
     $maxRetries = $job->getMaxRetries();
     $job->incrementRetries();
     $status = $burryJob === true || $job->getRetries() >= $maxRetries ? Job::STATUS_BURRIED : Job::STATUS_FAILED;
     $job->setStatus($status)->setRunAt($this->_calculateRetryTime($job->getRetries()))->addHistory($message)->setTimeFailed(Time::now());
     if ($job->getStatus() === Job::STATUS_FAILED) {
         $this->enqueue($job);
     } elseif ($job->getSequence() !== null) {
         $this->enqueueNextSequence($job);
     } else {
         $this->_persistToDatastore($job);
     }
     $this->dispatchEvent('DelayedJob.jobFailed', [$job, $message]);
     return $job;
 }