 7582d7dd8b
			
		
	
	7582d7dd8b
	
	
	
		
			
			- Simplified the job status retrieval process by consolidating logic into a single `getJobStatus` function. - Removed redundant checks and methods from the `CustomJobRepositoryInterface` and `CustomJobRepository`. - Updated the `getHorizonJobStatus` method in `ApplicationDeploymentQueue` to directly utilize the new `getJobStatus` function. - Enhanced the `isThereAJobInProgress` method to improve clarity and maintainability.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Repositories;
 | |
| 
 | |
| use App\Contracts\CustomJobRepositoryInterface;
 | |
| use Illuminate\Support\Collection;
 | |
| use Laravel\Horizon\Repositories\RedisJobRepository;
 | |
| use Laravel\Horizon\Repositories\RedisMasterSupervisorRepository;
 | |
| 
 | |
| class CustomJobRepository extends RedisJobRepository implements CustomJobRepositoryInterface
 | |
| {
 | |
|     public function getHorizonWorkers()
 | |
|     {
 | |
|         $redisMasterSupervisorRepository = app(RedisMasterSupervisorRepository::class);
 | |
| 
 | |
|         return $redisMasterSupervisorRepository->all();
 | |
|     }
 | |
| 
 | |
|     public function getReservedJobs(): Collection
 | |
|     {
 | |
|         return $this->getJobsByStatus('reserved');
 | |
|     }
 | |
| 
 | |
|     public function getJobsByStatus(string $status): Collection
 | |
|     {
 | |
|         $jobs = new Collection;
 | |
| 
 | |
|         $this->getRecent()->each(function ($job) use ($jobs, $status) {
 | |
|             if ($job->status === $status) {
 | |
|                 $jobs->push($job);
 | |
|             }
 | |
|         });
 | |
| 
 | |
|         return $jobs;
 | |
|     }
 | |
| 
 | |
|     public function countJobsByStatus(string $status): int
 | |
|     {
 | |
|         return $this->getJobsByStatus($status)->count();
 | |
|     }
 | |
| 
 | |
|     public function getQueues(): array
 | |
|     {
 | |
|         $queues = $this->connection()->keys('queue:*');
 | |
|         $queues = array_map(function ($queue) {
 | |
|             return explode(':', $queue)[2];
 | |
|         }, $queues);
 | |
| 
 | |
|         return $queues;
 | |
|     }
 | |
| }
 |