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; }
/** * @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); } }