Worker
class Worker (View source)
Traits
DetectsLostConnections |
Properties
protected Factory | $manager | The queue manager instance. | |
protected Dispatcher | $events | The event dispatcher instance. | |
protected Repository | $cache | The cache repository implementation. | |
protected ExceptionHandler | $exceptions | The exception handler instance. | |
protected callable | $isDownForMaintenance | The callback used to determine if the application is in maintenance mode. | |
bool | $shouldQuit | Indicates if the worker should exit. | |
bool | $paused | Indicates if the worker is paused. |
Methods
bool | causedByLostConnection(Throwable $e) Determine if the given exception was caused by a lost connection. | from DetectsLostConnections |
void | __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance) Create a new queue worker. | |
void | daemon(string $connectionName, string $queue, WorkerOptions $options) Listen to the given queue in a loop. | |
void | registerTimeoutHandler(Job|null $job, WorkerOptions $options) Register the worker timeout handler. | |
void | resetTimeoutHandler() Reset the worker timeout handler. | |
int | timeoutForJob(Job|null $job, WorkerOptions $options) Get the appropriate timeout for the given job. | |
bool | daemonShouldRun(WorkerOptions $options, string $connectionName, string $queue) Determine if the daemon should process on this iteration. | |
void | pauseWorker(WorkerOptions $options, int $lastRestart) Pause the worker for the current loop. | |
void | stopIfNecessary(WorkerOptions $options, int $lastRestart, mixed $job = null) Stop the process if necessary. | |
void | runNextJob(string $connectionName, string $queue, WorkerOptions $options) Process the next job on the queue. | |
Job|null | getNextJob(Queue $connection, string $queue) Get the next job from the queue connection. | |
void | runJob(Job $job, string $connectionName, WorkerOptions $options) Process the given job. | |
void | stopWorkerIfLostConnection(Throwable $e) Stop the worker if we have lost connection to a database. | |
void | process(string $connectionName, Job $job, WorkerOptions $options) Process the given job from the queue. | |
void | handleJobException(string $connectionName, Job $job, WorkerOptions $options, Exception $e) Handle an exception that occurred while the job was running. | |
void | markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Job $job, int $maxTries) Mark the given job as failed if it has exceeded the maximum allowed attempts. | |
void | markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Job $job, int $maxTries, Exception $e) Mark the given job as failed if it has exceeded the maximum allowed attempts. | |
void | failJob(Job $job, Exception $e) Mark the given job as failed and raise the relevant event. | |
void | raiseBeforeJobEvent(string $connectionName, Job $job) Raise the before queue job event. | |
void | raiseAfterJobEvent(string $connectionName, Job $job) Raise the after queue job event. | |
void | raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Exception $e) Raise the exception occurred queue job event. | |
bool | queueShouldRestart(int|null $lastRestart) Determine if the queue worker should restart. | |
int|null | getTimestampOfLastQueueRestart() Get the last queue restart timestamp, or null. | |
void | listenForSignals() Enable async signals for the process. | |
bool | supportsAsyncSignals() Determine if "async" signals are supported. | |
bool | memoryExceeded(int $memoryLimit) Determine if the memory limit has been exceeded. | |
void | stop(int $status = 0) Stop listening and bail out of the script. | |
void | kill(int $status = 0) Kill the process. | |
MaxAttemptsExceededException | maxAttemptsExceededException(Job|null $job) Create an instance of MaxAttemptsExceededException. | |
void | sleep(int|float $seconds) Sleep the script for a given number of seconds. | |
void | setCache(Repository $cache) Set the cache repository implementation. | |
QueueManager | getManager() Get the queue manager instance. | |
void | setManager(Factory $manager) Set the queue manager instance. |
Details
protected bool causedByLostConnection(Throwable $e)
Determine if the given exception was caused by a lost connection.
void __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance)
Create a new queue worker.
void daemon(string $connectionName, string $queue, WorkerOptions $options)
Listen to the given queue in a loop.
protected void registerTimeoutHandler(Job|null $job, WorkerOptions $options)
Register the worker timeout handler.
protected void resetTimeoutHandler()
Reset the worker timeout handler.
protected int timeoutForJob(Job|null $job, WorkerOptions $options)
Get the appropriate timeout for the given job.
protected bool daemonShouldRun(WorkerOptions $options, string $connectionName, string $queue)
Determine if the daemon should process on this iteration.
protected void pauseWorker(WorkerOptions $options, int $lastRestart)
Pause the worker for the current loop.
protected void stopIfNecessary(WorkerOptions $options, int $lastRestart, mixed $job = null)
Stop the process if necessary.
void runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Process the next job on the queue.
protected Job|null getNextJob(Queue $connection, string $queue)
Get the next job from the queue connection.
protected void runJob(Job $job, string $connectionName, WorkerOptions $options)
Process the given job.
protected void stopWorkerIfLostConnection(Throwable $e)
Stop the worker if we have lost connection to a database.
void process(string $connectionName, Job $job, WorkerOptions $options)
Process the given job from the queue.
protected void handleJobException(string $connectionName, Job $job, WorkerOptions $options, Exception $e)
Handle an exception that occurred while the job was running.
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.
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.
protected void failJob(Job $job, Exception $e)
Mark the given job as failed and raise the relevant event.
protected void raiseBeforeJobEvent(string $connectionName, Job $job)
Raise the before queue job event.
protected void raiseAfterJobEvent(string $connectionName, Job $job)
Raise the after queue job event.
protected void raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Exception $e)
Raise the exception occurred queue job event.
protected bool queueShouldRestart(int|null $lastRestart)
Determine if the queue worker should restart.
protected int|null getTimestampOfLastQueueRestart()
Get the last queue restart timestamp, or null.
protected void listenForSignals()
Enable async signals for the process.
protected bool supportsAsyncSignals()
Determine if "async" signals are supported.
bool memoryExceeded(int $memoryLimit)
Determine if the memory limit has been exceeded.
void stop(int $status = 0)
Stop listening and bail out of the script.
void kill(int $status = 0)
Kill the process.
protected MaxAttemptsExceededException maxAttemptsExceededException(Job|null $job)
Create an instance of MaxAttemptsExceededException.
void sleep(int|float $seconds)
Sleep the script for a given number of seconds.
void setCache(Repository $cache)
Set the cache repository implementation.
QueueManager getManager()
Get the queue manager instance.
void setManager(Factory $manager)
Set the queue manager instance.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/6.x/Illuminate/Queue/Worker.html