/** * 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); }
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"); } }
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()]); } }
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']); }