Пример #1
0
 public function resolveJobs()
 {
     if ($this->noNeedToRun()) {
         return;
     }
     $timeLimit = $this->configuration->timeout;
     $startTime = time();
     do {
         try {
             $job = $this->jobRepository->getActual();
             if (is_object($job)) {
                 $job->run();
             }
         } catch (Exception $e) {
             $record = new AuditRecord();
             $record->category = self::LogName;
             $record->message = (string) $e;
             $this->logger->log($record);
             if (!empty($job)) {
                 $job->status = Job::ErrorStatus;
                 $job->update();
             }
         }
         $timeToStop = !empty($timeLimit) ? time() >= $startTime + $timeLimit : true;
         if (!$timeToStop) {
             sleep(1);
         }
     } while (!$timeToStop);
     $this->jobRepository->cleanup($this->configuration->jobLifetime);
 }
Пример #2
0
 protected function action()
 {
     $data = $this->jobRepository->getLatests($this->limit);
     foreach ($data as $key => $job) {
         $data[$key] = $job->getPreviewParseData();
         unset($job);
     }
     return $data;
 }
Пример #3
0
 protected function action()
 {
     $job = $this->jobRepository->get($this->request->getParam('id'));
     if ($job->status->getValue() != Job::NewStatus) {
         return;
     }
     $job->status = Job::CanceledStatus;
     $job->update();
 }
Пример #4
0
 protected function action()
 {
     $originalJob = $this->jobRepository->get($this->request->getParam('id'));
     if (Job::NewStatus == $originalJob->status->getValue()) {
         return $originalJob->id->getValue();
     }
     $className = get_class($originalJob);
     $job = new $className([], $this->jobRepository);
     $job->hash = $originalJob->hash->getValue();
     $job->actionDate->setTime($this->request->getParam('actionDate'));
     $job->data = $originalJob->data->getValue();
     $job->insert();
     return $job->id->getValue();
 }
 public function cleanUp()
 {
     $this->jobRepository->cleanup('5 minute');
     $latests = $this->jobRepository->getLatests(2);
     $this->assertTrue(is_array($latests));
     $this->assertEquals(1, sizeof($latests));
     $this->assertEquals(1, $latests[0]->id->getValue());
 }
Пример #6
0
 public function delete()
 {
     $this->repository->delete($this);
 }