Exemple #1
0
 /**
  * @param $class
  * @param $tries
  * @param QueuePayload $payload
  * @param \Exception $exception
  */
 public static function add($class, $tries, QueuePayload $payload, \Exception $exception)
 {
     $failed = new FailedJobs();
     $failed->class = $class;
     $failed->tries = $tries;
     $failed->payload = $payload->encode();
     $failed->log_time = time();
     $failed->stack_trace = $exception->getMessage();
     $failed->stack_trace .= "\n\n" . $exception->getTraceAsString();
     $failed->save(false);
 }
Exemple #2
0
 /**
  * @param QueuePayload $payload
  * @throws \Exception
  * @throws \yii\base\InvalidConfigException
  */
 protected function resolveAndRun(QueuePayload $payload)
 {
     list($class, $method) = $this->resolveJob($payload->getClass());
     $instance = Yii::createObject(['class' => $class]);
     if ($instance instanceof BaseTask) {
         $instance->beforeRun($this, $payload);
     }
     try {
         if ($instance instanceof QueueWorker) {
             $instance->run($this, $payload->getParams());
         } else {
             call_user_func([$instance, $method], $this, $payload->getParams());
         }
     } catch (\Exception $ex) {
         if ($instance instanceof BaseTask) {
             $instance->onFail($this, $payload, $ex);
         }
         throw $ex;
     }
     if ($instance instanceof BaseTask) {
         $instance->afterRun($this, $payload);
     }
 }
Exemple #3
0
 /**
  * @param QueuePayload $payload
  */
 public function pushJob(QueuePayload $payload)
 {
     $this->push($payload->getClass(), $payload->getParams(), $payload->getQueueName() ?? 'default');
 }