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); } }
protected function status() { return JobStatus::processing(); }
function it_knows_how_many_jobs_are_in_process(Redis $redis) { $redis->llen('queue:my-queue:processing')->willReturn(5); $this->countJobs('my-queue', JobStatus::processing())->shouldReturn(5); }