Example #1
0
 /**
  * Execute the job.
  *
  * @throws \Exception
  */
 public function handle()
 {
     /** @var Task $task */
     $task = Task::find($this->task_id);
     if (is_null($task)) {
         throw new Exception('TaskJob not found task with id', ['task_id' => $this->task_id]);
     }
     $task->start_running();
     if (!class_exists($task->job_class)) {
         $task->failure('Class ' . strval($task->job_class) . ' not exists');
         $this->delete();
         return null;
     }
     $className = $task->job_class;
     /** @var Task $task */
     $object = $task->taskable()->first();
     /** @var BaseTask $job */
     $job = new $className($object);
     try {
         list($rv, $errormessage) = $job->run();
         if ($rv === true) {
             $job->success();
             $task->success();
         } else {
             $job->failure(new Exception('Job ' . $className . ' return value false and message: ' . $errormessage));
             $task->failure('Job ' . $className . ' return value false and error message:' . $errormessage);
         }
     } catch (Exception $e) {
         $job->failure($e);
         $task->failure($e);
     }
     $this->delete();
 }