/** * @param JobInterface $job * * @return JobStatus */ public function create(JobInterface $job) { assert($this->prototype instanceof JobStatus); $instance = clone $this->prototype; $instance->setToken($job->getToken()); return $instance; }
/** * @param JobInterface $job * @param JobStatus $jobStatus */ public function process(JobInterface $job, JobStatus $jobStatus) { $jobStatus->setRunning(); try { $job->setUp(); $job->perform(); $job->tearDown(); } catch (\Exception $exception) { $jobStatus->setFailed(); return; } $jobStatus->setComplete(); }
/** * @param JobInterface $job * * @return string */ public function serialize(JobInterface $job) { $data = ['token' => $job->getToken()->toString(), 'payload' => $job->getPayload()]; return json_encode($data); }