예제 #1
0
 private function _list(array $jobIds, JobStatus $status)
 {
     switch (true) {
         case $status->equals(JobStatus::pending()):
             $needle = 'queued';
             break;
         case $status->equals(JobStatus::processing()):
             $needle = 'processing';
             break;
         default:
             return $jobIds;
     }
     $list = [];
     foreach ($jobIds as $jobId) {
         if ($lastEvent = $this->keyspace->jobHistory($jobId)->lastEvent($needle)) {
             $timestamp = (new \DateTime($lastEvent->dateTime()))->getTimestamp();
             $list[$jobId] = $timestamp;
         }
     }
     return $list;
 }
예제 #2
0
파일: Keyspace.php 프로젝트: metro-q/metro
 /**
  * @param string $queueId
  * @param JobStatus $status
  * @return Keyspace\JobList[]
  */
 public function jobsWithStatus($queueId, JobStatus $status)
 {
     switch (true) {
         case $status->equals(JobStatus::pending()):
             return $this->pendingJobs($queueId);
         case $status->equals(JobStatus::processing()):
             return $this->processingJobs($queueId);
         case $status->equals(JobStatus::successful()):
             return $this->successfulJobs($queueId);
         case $status->equals(JobStatus::failed()):
             return $this->failedJobs($queueId);
     }
 }