Exemplo n.º 1
0
 public function testGetJobs()
 {
     $job = $this->createJob();
     self::$jobMapper->create($job);
     $job2 = $this->createJob();
     self::$jobMapper->create($job2);
     $retries = 0;
     $res = [];
     while ($retries < 7) {
         $delaySecs = 2 * pow(2, $retries);
         sleep($delaySecs);
         $retries++;
         $projectId = $job->getProject()['id'];
         $res = self::$search->getJobs(['projectId' => $projectId, 'component' => SYRUP_APP_NAME, 'since' => '-1 day', 'until' => 'now']);
         if (count($res) >= 2) {
             break;
         }
     }
     $job1Asserted = false;
     $job2Asserted = false;
     foreach ($res as $r) {
         if ($r['id'] == $job->getId()) {
             $this->assertJob($job, $r);
             $job1Asserted = true;
         }
         if ($r['id'] == $job2->getId()) {
             $this->assertJob($job2, $r);
             $job2Asserted = true;
         }
     }
     $this->assertTrue($job1Asserted);
     $this->assertTrue($job2Asserted);
 }
Exemplo n.º 2
0
 public function testUpdateJob()
 {
     $job = self::$jobFactory->create(uniqid());
     $id = self::$jobMapper->create($job);
     $job = self::$jobMapper->get($id);
     $job->setStatus(Job::STATUS_CANCELLED);
     self::$jobMapper->update($job);
     $job = self::$jobMapper->get($id);
     $this->assertEquals($job->getStatus(), Job::STATUS_CANCELLED);
     $job->setStatus(Job::STATUS_WARNING);
     self::$jobMapper->update($job);
     $job = self::$jobMapper->get($id);
     $this->assertEquals($job->getStatus(), Job::STATUS_WARNING);
 }
Exemplo n.º 3
0
 /**
  * @param Job $job
  * @param StorageApi\UniqueManager $uniqueGenerator
  * @return Job|null
  */
 public function saveJob(Job $job, StorageApi\UniqueManager $uniqueGenerator)
 {
     $job->setStatus(Elasticsearch\Job::STATUS_WAITING);
     $job->setResults(null);
     $job->setCreatedTime(new \DateTime());
     $id = $this->syrupJobMapper->create($this->buildEsJob($job, $uniqueGenerator));
     return $this->findJobById($id);
 }