Example #1
0
 /**
  * Copies properties of a job to another job
  *
  * @param JobInterface                             $from The job where properties are copied from
  * @param \Abc\Bundle\JobBundle\Model\JobInterface $to   The job where where properties are copied to
  * @return \Abc\Bundle\JobBundle\Model\JobInterface The copied job
  */
 public function copyJob(JobInterface $from, \Abc\Bundle\JobBundle\Model\JobInterface $to)
 {
     $to->setType($from->getType());
     $to->setResponse($from->getResponse());
     $to->setParameters($from->getParameters());
     if (null != $from->getStatus()) {
         $to->setStatus($from->getStatus());
     }
     foreach ($from->getSchedules() as $schedule) {
         $to->addSchedule($schedule);
     }
     return $to;
 }
Example #2
0
 /**
  * Invokes the job.
  *
  * @param JobInterface     $job
  * @param ContextInterface $context
  * @return mixed
  * @throws JobTypeNotFoundException
  */
 public function invoke(JobInterface $job, ContextInterface $context)
 {
     $jobType = $this->registry->get($job->getType());
     $callableArray = $jobType->getCallable();
     $parameters = static::resolveParameters($jobType, $context, $job->getParameters());
     if (is_array($callableArray) && ($callable = $callableArray[0])) {
         if ($callable instanceof JobAwareInterface) {
             $callable->setJob($job);
         }
         if ($callable instanceof ManagerAwareInterface) {
             $callable->setManager($this->manager);
         }
         if ($callable instanceof ControllerAwareInterface) {
             $callable->setController($this->controllerFactory->create($job));
         }
         if ($callable instanceof LoggerAwareInterface && $context->has('abc.logger')) {
             $callable->setLogger($context->get('abc.logger'));
         }
     }
     return call_user_func_array($callableArray, $parameters);
 }