Ejemplo n.º 1
0
 public function run(JobName $jobName, JobSettings $settings, UuidInterface $previousEventId = null)
 {
     $jobWorker = $this->jobWorkerRepository->get($jobName);
     $this->processManager->onTermination([$jobWorker, 'stop']);
     $work = $jobWorker->start($this->eventProcessor, $settings, $previousEventId);
     foreach ($work as $event) {
         $this->jobWorkerRepository->save($jobWorker);
         $this->processManager->dispatchSignals();
     }
     $this->jobWorkerRepository->save($jobWorker);
 }
Ejemplo n.º 2
0
 /**
  * @param Job[] $jobs
  */
 private function doManage(array $jobs)
 {
     $this->pid = $this->processManager->getMyPid();
     $this->processManager->onTermination(function () {
         $this->terminate = true;
     });
     while (!$this->terminate) {
         $this->maintain($jobs);
         if ($this->isChildProcess()) {
             return;
         }
     }
     $this->terminate($jobs);
 }