|
7 | 7 | use Illuminate\Database\Connection; |
8 | 8 | use Illuminate\Queue\Jobs\DatabaseJob; |
9 | 9 | use Illuminate\Queue\Jobs\DatabaseJobRecord; |
| 10 | +use Illuminate\Queue\Jobs\InspectedJob; |
10 | 11 | use Illuminate\Support\Carbon; |
11 | 12 | use Illuminate\Support\Collection; |
12 | 13 | use Illuminate\Support\Str; |
@@ -131,6 +132,53 @@ public function reservedSize($queue = null) |
131 | 132 | ->count(); |
132 | 133 | } |
133 | 134 |
|
| 135 | + /** |
| 136 | + * Get the pending jobs for the given queue. |
| 137 | + * |
| 138 | + * @param string|null $queue |
| 139 | + * @return \Illuminate\Support\Collection<int, \Illuminate\Queue\Jobs\InspectedJob> |
| 140 | + */ |
| 141 | + public function pendingJobs($queue = null): Collection |
| 142 | + { |
| 143 | + return $this->database->table($this->table) |
| 144 | + ->where('queue', $this->getQueue($queue)) |
| 145 | + ->whereNull('reserved_at') |
| 146 | + ->where('available_at', '<=', $this->currentTime()) |
| 147 | + ->get() |
| 148 | + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->queue, $record->attempts)); |
| 149 | + } |
| 150 | + |
| 151 | + /** |
| 152 | + * Get the delayed jobs for the given queue. |
| 153 | + * |
| 154 | + * @param string|null $queue |
| 155 | + * @return \Illuminate\Support\Collection<int, \Illuminate\Queue\Jobs\InspectedJob> |
| 156 | + */ |
| 157 | + public function delayedJobs($queue = null): Collection |
| 158 | + { |
| 159 | + return $this->database->table($this->table) |
| 160 | + ->where('queue', $this->getQueue($queue)) |
| 161 | + ->whereNull('reserved_at') |
| 162 | + ->where('available_at', '>', $this->currentTime()) |
| 163 | + ->get() |
| 164 | + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->queue, $record->attempts)); |
| 165 | + } |
| 166 | + |
| 167 | + /** |
| 168 | + * Get the reserved jobs for the given queue. |
| 169 | + * |
| 170 | + * @param string|null $queue |
| 171 | + * @return \Illuminate\Support\Collection<int, \Illuminate\Queue\Jobs\InspectedJob> |
| 172 | + */ |
| 173 | + public function reservedJobs($queue = null): Collection |
| 174 | + { |
| 175 | + return $this->database->table($this->table) |
| 176 | + ->where('queue', $this->getQueue($queue)) |
| 177 | + ->whereNotNull('reserved_at') |
| 178 | + ->get() |
| 179 | + ->map(fn ($record) => InspectedJob::fromPayload($record->payload, $record->queue, $record->attempts)); |
| 180 | + } |
| 181 | + |
134 | 182 | /** |
135 | 183 | * Get the creation timestamp of the oldest pending job, excluding delayed jobs. |
136 | 184 | * |
|
0 commit comments