Exemple #1
0
 /**
  * Hook for modify job after job execution
  *
  * @param Job $job
  * @return void
  */
 public function postExecution(Job $job)
 {
     if ($job->getId() !== $this->job->getId()) {
         throw new \InvalidArgumentException('Given job must be same as previous executed');
     }
     if ($job->getComponent() !== $this->job->getComponent()) {
         throw new \InvalidArgumentException('Given job must be same as previous executed');
     }
     $job->setResult($job->getResult() + array(self::HOOK_RESULT_KEY => self::HOOK_RESULT_VALUE));
     $this->jobMapper->update($job);
 }
Exemple #2
0
 public function execute(Job $job)
 {
     $params = $job->getParams();
     // simulate long running job
     for ($i = 0; $i < 120; $i++) {
         $this->logger->debug(sprintf("Job '%s' is '%s'", $job->getId(), $job->getStatus()));
         sleep(1);
     }
     if (isset($params['returnStatus']) && $params['returnStatus'] == 'error') {
         throw new ApplicationException("Application error occured");
     }
 }
Exemple #3
0
 private function assertJob(Job $job, $resJob)
 {
     $this->assertEquals($job->getId(), $resJob['id']);
     $this->assertEquals($job->getRunId(), $resJob['runId']);
     $this->assertEquals($job->getLockName(), $resJob['lockName']);
     $this->assertEquals($job->getProject()['id'], $resJob['project']['id']);
     $this->assertEquals($job->getProject()['name'], $resJob['project']['name']);
     $this->assertEquals($job->getToken()['id'], $resJob['token']['id']);
     $this->assertEquals($job->getToken()['description'], $resJob['token']['description']);
     $this->assertEquals($job->getToken()['token'], $resJob['token']['token']);
     $this->assertEquals($job->getComponent(), $resJob['component']);
     $this->assertEquals($job->getStatus(), $resJob['status']);
 }
 /**
  * @param Job|SyrupJob $job
  */
 public function postExecute(SyrupJob $job)
 {
     if ($this->cache[$job->getId()]) {
         $this->cache[$job->getId()]->postExecute($job);
         unset($this->cache[$job->getId()]);
     }
 }
Exemple #5
0
 public function build(\Keboola\Syrup\Job\Metadata\Job $job)
 {
     $params = $job->getRawParams();
     $process = $job->getProcess();
     $token = $job->getToken();
     $project = $job->getProject();
     $this->setId($job->getId());
     if (!empty($params['config'])) {
         $this->setConfig($params['config']);
     }
     $this->setProjectId($project['id']);
     $this->setOrchestrationId($params['orchestration']['id']);
     $this->setToken($token['token']);
     $this->setTokenId($token['id']);
     $this->setTokenDesc($token['description']);
     $this->setTokenOwnerName($project['name']);
     $this->setStatus($job->getStatus());
     $this->setStartTime($job->getStartTime());
     $this->setEndTime($job->getEndTime());
     $this->setResults($job->getResult());
     if (!empty($params['tasks'])) {
         $this->setTaks($params['tasks']);
     }
     $this->setCreatedTime($job->getCreatedTime());
     $this->setOrchestrationName($params['orchestration']['name']);
     $this->setInitializedBy($params['initializedBy']);
     $this->setInitiatorTokenId($params['initiator']['id']);
     $this->setInitiatorTokenDesc($params['initiator']['description']);
     $this->setInitiatorUserAgent($params['initiator']['userAgent']);
     $this->setNotificationsEmails($params['notificationsEmails']);
     $this->setRunId($job->getRunId());
     $this->setPid($process['pid']);
     $this->setWorkerAddress($process['host']);
 }