Worker
class Worker
Traits
Properties
| protected QueueManager | $manager | The queue manager instance. |
|
| protected Dispatcher | $events | The event dispatcher instance. |
|
| protected Repository | $cache | The cache repository implementation. |
|
| protected Handler | $exceptions | The exception handler instance. |
|
| bool | $shouldQuit | Indicates if the worker should exit. |
|
| bool | $paused | Indicates if the worker is paused. |
Methods
Determine if the given exception was caused by a lost connection.
Create a new queue worker.
Listen to the given queue in a loop.
Register the worker timeout handler (PHP 7.1+).
Process the next job on the queue.
Process the given job from the queue.
Handle an exception that occurred while the job was running.
Mark the given job as failed if it has exceeded the maximum allowed attempts.
Mark the given job as failed if it has exceeded the maximum allowed attempts.
Raise the exception occurred queue job event.
Raise the failed queue job event.
Determine if the queue worker should restart.
Get the last queue restart timestamp, or null.
Enable async signals for the process.
Determine if "async" signals are supported.
Determine if the memory limit has been exceeded.
Stop listening and bail out of the script.
Kill the process.
Sleep the script for a given number of seconds.
Get the queue manager instance.
Details
in
DetectsLostConnections at line 16
protected bool
causedByLostConnection(Exception $e)
Determine if the given exception was caused by a lost connection.
at line 67
void
__construct(QueueManager $manager, Dispatcher $events, ExceptionHandler $exceptions)
Create a new queue worker.
at line 84
void
daemon(string $connectionName, string $queue, WorkerOptions $options)
Listen to the given queue in a loop.
at line 132
protected void
registerTimeoutHandler(Job|null $job, WorkerOptions $options)
Register the worker timeout handler (PHP 7.1+).
at line 155
protected int
timeoutForJob(Job|null $job, WorkerOptions $options)
Get the appropriate timeout for the given job.
at line 166
protected bool
daemonShouldRun(WorkerOptions $options)
Determine if the daemon should process on this iteration.
at line 180
protected void
pauseWorker(WorkerOptions $options, int $lastRestart)
Pause the worker for the current loop.
at line 193
protected
stopIfNecessary(WorkerOptions $options, int $lastRestart)
Stop the process if necessary.
at line 214
void
runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Process the next job on the queue.
at line 237
protected Job|null
getNextJob(Queue $connection, string $queue)
Get the next job from the queue connection.
at line 264
protected void
runJob(Job $job, string $connectionName, WorkerOptions $options)
Process the given job.
at line 285
protected void
stopWorkerIfLostConnection(Exception $e)
Stop the worker if we have lost connection to a database.
at line 302
void
process(string $connectionName, Job $job, WorkerOptions $options)
Process the given job from the queue.
at line 340
protected void
handleJobException(string $connectionName, Job $job, WorkerOptions $options, Exception $e)
Handle an exception that occurred while the job was running.
at line 377
protected void
markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Job $job, int $maxTries)
Mark the given job as failed if it has exceeded the maximum allowed attempts.
This will likely be because the job previously exceeded a timeout.
at line 401
protected void
markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Job $job, int $maxTries, Exception $e)
Mark the given job as failed if it has exceeded the maximum allowed attempts.
at line 418
protected void
failJob(string $connectionName, Job $job, Exception $e)
Mark the given job as failed and raise the relevant event.
at line 430
protected void
raiseBeforeJobEvent(string $connectionName, Job $job)
Raise the before queue job event.
at line 444
protected void
raiseAfterJobEvent(string $connectionName, Job $job)
Raise the after queue job event.
at line 459
protected void
raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Exception $e)
Raise the exception occurred queue job event.
at line 474
protected void
raiseFailedJobEvent(string $connectionName, Job $job, Exception $e)
Raise the failed queue job event.
at line 487
protected bool
queueShouldRestart(int|null $lastRestart)
Determine if the queue worker should restart.
at line 497
protected int|null
getTimestampOfLastQueueRestart()
Get the last queue restart timestamp, or null.
at line 509
protected void
listenForSignals()
Enable async signals for the process.
at line 533
protected bool
supportsAsyncSignals()
Determine if "async" signals are supported.
at line 545
bool
memoryExceeded(int $memoryLimit)
Determine if the memory limit has been exceeded.
at line 556
void
stop(int $status = 0)
Stop listening and bail out of the script.
at line 569
void
kill(int $status = 0)
Kill the process.
at line 584
void
sleep(int $seconds)
Sleep the script for a given number of seconds.
at line 595
void
setCache(Repository $cache)
Set the cache repository implementation.
at line 605
QueueManager
getManager()
Get the queue manager instance.
at line 616
void
setManager(QueueManager $manager)
Set the queue manager instance.