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); }
protected function action() { $data = $this->jobRepository->getLatests($this->limit); foreach ($data as $key => $job) { $data[$key] = $job->getPreviewParseData(); unset($job); } return $data; }
protected function action() { $job = $this->jobRepository->get($this->request->getParam('id')); if ($job->status->getValue() != Job::NewStatus) { return; } $job->status = Job::CanceledStatus; $job->update(); }
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()); }
public function delete() { $this->repository->delete($this); }