Рабочий процесс
класс Рабочий процесс (Просмотреть исходный код)
Трейты
| DetectsLostConnections |
Свойства
| protected Фабрика | $manager | Экземпляр менеджера очереди. | |
| protected Диспечер событий | $events | Экземпляр диспечера событий. | |
| protected Репозиторий | $cache | Реализация репозитория кеша. | |
| protected Обработчик исключений | $exceptions | Экземпляр обработчика исключений. | |
| protected вызываемый объект | $isDownForMaintenance | Обратный вызов, используемый для определения, находится ли приложение в режиме технического обслуживания. | |
| bool | $shouldQuit | Указывает, должен ли рабочий процесс завершиться. | |
| bool | $paused | Указывает, приостановлен ли рабочий процесс. |
Методы
| bool | causedByLostConnection(Throwable $e)
Определить, было ли данное исключение вызвано потерей подключения. | из DetectsLostConnections |
| void | __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance)
Создать нового обработчика очереди. | |
| void | daemon(string $connectionName, string $queue, WorkerOptions $options)
Прослушивать заданную очередь в цикле. | |
| void | registerTimeoutHandler(Job|null $job, WorkerOptions $options)
Зарегистрировать обработчик таймаута обработчика очереди. | |
| void | resetTimeoutHandler()
Сбросить обработчик таймаута обработчика очереди. | |
| int | timeoutForJob(Job|null $job, WorkerOptions $options)
Получить соответствующий таймаут для данной задачи. | |
| bool | daemonShouldRun(WorkerOptions $options, string $connectionName, string $queue)
Определить, должен ли обработчик задач выполняться на этой итерации. | |
| void | pauseWorker(WorkerOptions $options, int $lastRestart)
Приостановить обработчик задач на текущем цикле. | |
| void | stopIfNecessary(WorkerOptions $options, int $lastRestart, mixed $job = null)
Остановить процесс, если необходимо. | |
| void | runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Обработать следующую задачу в очереди. | |
| Job|null | getNextJob(Queue $connection, string $queue)
Получить следующую задачу из соединения очереди. | |
| void | runJob(Job $job, string $connectionName, WorkerOptions $options)
Обработать заданную задачу. | |
| void | stopWorkerIfLostConnection(Throwable $e)
Остановить обработчик задач, если у нас потеряно соединение с базой данных. | |
| void | process(string $connectionName, Job $job, WorkerOptions $options)
Обработать заданную задачу из очереди. | |
| void | handleJobException(string $connectionName, Job $job, WorkerOptions $options, Exception $e)
Обработать исключение, возникшее во время выполнения задачи. | |
| void | markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Job $job, int $maxTries)
Отметить задачу как завершённую, если она уже превысила максимальное количество попыток. | |
| void | markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Job $job, int $maxTries, Exception $e)
Отметить задачу как завершённую, если она превысит максимальное количество попыток. | |
| void | failJob(Job $job, Exception $e)
Отметить задачу как завершённую и сгенерировать соответствующее событие. | |
| void | raiseBeforeJobEvent(string $connectionName, Job $job)
Вызвать событие перед задачей очереди. | |
| void | raiseAfterJobEvent(string $connectionName, Job $job)
Вызвать событие после задачи очереди. | |
| void | raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Exception $e)
Вызвать событие возникновения исключения при выполнении задачи очереди. | |
| bool | queueShouldRestart(int|null $lastRestart)
Определить, должен ли обработчик очереди перезапуститься. | |
| int|null | getTimestampOfLastQueueRestart()
Получить отметку времени последнего перезапуска очереди или null. | |
| void | listenForSignals()
Включить асинхронные сигналы для процесса. | |
| bool | supportsAsyncSignals()
Определить, поддерживаются ли асинхронные сигналы. | |
| bool | memoryExceeded(int $memoryLimit)
Определить, превышен ли лимит памяти. | |
| void | stop(int $status = 0)
Остановить прослушивание и выйти из скрипта. | |
| void | kill(int $status = 0)
Убить процесс. | |
| MaxAttemptsExceededException | maxAttemptsExceededException(Job|null $job)
Создать экземпляр MaxAttemptsExceededException. | |
| void | sleep(int|float $seconds)
Засыпать скрипт на заданное количество секунд. | |
| void | setCache(Repository $cache)
Установить реализацию кеша. | |
| QueueManager | getManager()
Получить экземпляр менеджера очереди. | |
| void | setManager(Factory $manager)
Установить экземпляр менеджера очереди. |
Подробности
protected bool causedByLostConnection(Throwable $e)
Определить, вызвано ли данное исключение потерей соединения.
void __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance)
Создать нового обработчика очереди.
void daemon(string $connectionName, string $queue, WorkerOptions $options)
Прослушивать заданную очередь в цикле.
protected void registerTimeoutHandler(Job|null $job, WorkerOptions $options)
Зарегистрировать обработчик таймаута для обработчика.
protected void resetTimeoutHandler()
Сбросить обработчик таймаута обработчика.
protected int timeoutForJob(Job|null $job, WorkerOptions $options)
Получить соответствующий таймаут для данной задачи.
protected bool daemonShouldRun(WorkerOptions $options, string $connectionName, string $queue)
Определить, должен ли демон обработать на этой итерации.
protected void pauseWorker(WorkerOptions $options, int $lastRestart)
Приостановить обработчик на текущей итерации.
protected void stopIfNecessary(WorkerOptions $options, int $lastRestart, mixed $job = null)
Остановить процесс, если необходимо.
void runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Обработать следующую задачу в очереди.
protected Job|null getNextJob(Queue $connection, string $queue)
Получить следующую задачу из соединения очереди.
protected void runJob(Job $job, string $connectionName, WorkerOptions $options)
Обработать заданную задачу.
protected void stopWorkerIfLostConnection(Throwable $e)
Остановить обработчик, если соединение с базой данных потеряно.
void process(string $connectionName, Job $job, WorkerOptions $options)
Обработать заданную задачу из очереди.
protected void handleJobException(string $connectionName, Job $job, WorkerOptions $options, Exception $e)
Обработать исключение, возникшее во время выполнения задачи.
protected void markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Job $job, int $maxTries)
Отметить задачу как завершенную с ошибкой, если она превысила максимальное количество попыток.
Вероятно, это произойдет, если задача ранее превысила срок ожидания.
protected void markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Job $job, int $maxTries, Exception $e)
Отметить задачу как завершенную с ошибкой, если она превысила максимальное количество попыток.
protected void failJob(Job $job, Exception $e)
Отметить задачу как завершенную с ошибкой и сгенерировать соответствующее событие.
protected void raiseBeforeJobEvent(string $connectionName, Job $job)
Вызвать событие перед задачей очереди.
protected void raiseAfterJobEvent(string $connectionName, Job $job)
Вызвать событие после задачи очереди.
protected void raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Exception $e)
Вызвать событие о возникновении исключения при выполнении задачи в очереди.
protected bool queueShouldRestart(int|null $lastRestart)
Определить, нужно ли перезапустить обработчик очереди.
protected int|null getTimestampOfLastQueueRestart()
Получить временную метку последнего перезапуска очереди или null.
protected void listenForSignals()
Включить асинхронные сигналы для процесса.
protected bool supportsAsyncSignals()
Определить, поддерживаются ли асинхронные сигналы.
bool memoryExceeded(int $memoryLimit)
Определить, превышен ли лимит памяти.
void stop(int $status = 0)
Остановить прослушивание и завершить выполнение скрипта.
void kill(int $status = 0)
Завершить процесс.
protected MaxAttemptsExceededException maxAttemptsExceededException(Job|null $job)
Создать экземпляр MaxAttemptsExceededException.
void sleep(int|float $seconds)
Засыпать скрипт на заданное количество секунд.
void setCache(Репозиторий $cache)
Установить реализацию репозитория кэша.
Менеджер очереди getManager()
Получить экземпляр менеджера очереди.
void setManager(Фабрика $manager)
Установить экземпляр менеджера очереди.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/6.x/Illuminate/Queue/Worker.html