Рабочий
класс Рабочий (Просмотреть исходный код)
Свойства
| protected QueueManager | $manager | Экземпляр менеджера очередей. | |
| protected Dispatcher | $events | Экземпляр диспетчера событий. | |
| protected Repository | $cache | Реализация репозитория кеша. | |
| protected Handler | $exceptions | Экземпляр обработчика исключений. |
Методы
| void | __construct(Управление очередью $manager, Диспетчер событий $events, Обработчик исключений $exceptions) Создать нового обработчика очереди. | |
| void | daemon(string $connectionName, string $queue, Параметры обработчика очереди $options) Прослушивать заданную очередь в цикле. | |
| void | registerTimeoutHandler(Параметры обработчика очереди $options) Зарегистрировать обработчик таймаута обработчика очереди (PHP 7.1+). | |
| bool | daemonShouldRun(Параметры обработчика очереди $options) Определить, должен ли обработчик очереди обрабатывать на этой итерации. | |
| void | runNextJob(string $connectionName, string $queue, Параметры обработчика очереди $options) Обработать следующую задачу в очереди. | |
| Задача|null | getNextJob(Очередь $connection, string $queue) Получить следующую задачу из подключения к очереди. | |
| void | process(string $connectionName, Задача $job, Параметры обработчика очереди $options) Обработать заданную задачу из очереди. | |
| void | handleJobException(string $connectionName, Задача $job, Параметры обработчика очереди $options, Исключение $e) Обработать исключение, произошедшее во время выполнения задачи. | |
| void | markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Задача $job, int $maxTries) Отметить задачу как завершенную с ошибкой, если она превысила максимальное количество попыток. | |
| void | markJobAsFailedIfHasExceededMaxAttempts(string $connectionName, Задача $job, int $maxTries, Исключение $e) Отметить заданную задачу как завершенную с ошибкой, если она превысила максимальное количество попыток. | |
| void | failJob(string $connectionName, Задача $job, Исключение $e) Отметить заданную задачу как завершенную с ошибкой и поднять соответствующее событие. | |
| void | raiseBeforeJobEvent(string $connectionName, Задача $job) Поднять событие перед задачей в очереди. | |
| void | raiseAfterJobEvent(string $connectionName, Задача $job) Поднять событие после задачи в очереди. | |
| void | raiseExceptionOccurredJobEvent(string $connectionName, Задача $job, Исключение $e) Поднять событие о возникновении исключения при выполнении задачи в очереди. | |
| void | raiseFailedJobEvent(string $connectionName, Задача $job, Исключение $e) Поднять событие о неудачной задаче в очереди. | |
| bool | memoryExceeded(int $memoryLimit) Определить, превышен ли лимит памяти. | |
| void | stop() Остановить прослушивание и прервать выполнение скрипта. | |
| void | sleep(int $seconds) Засыпать скрипт на заданное количество секунд. | |
| int|null | getTimestampOfLastQueueRestart() Получить отметку времени последней перезагрузки очереди или null. | |
| bool | queueShouldRestart(int|null $lastRestart) Определить, должен ли обработчик очереди перезапуститься. | |
| void | setCache(Репозиторий кеша $cache) Установить реализацию репозитория кеша. | |
| Управление очередью | getManager() Получить экземпляр управления очередью. | |
| void | setManager(Управление очередью $manager) Установить экземпляр управления очередью. |
Подробности
void __construct(Управление очередью $manager, Диспетчер событий $events, Обработчик исключений $exceptions)
Создать нового обработчика очереди.
void daemon(string $connectionName, string $queue, Параметры обработчика очереди $options)
Прослушивать заданную очередь в цикле.
protected void registerTimeoutHandler(WorkerOptions $options)
Регистрация обработчика таймаута работника (PHP 7.1+).
protected bool daemonShouldRun(WorkerOptions $options)
Определить, должен ли демон обрабатывать задачу на этой итерации.
void runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Обработать следующую задачу в очереди.
protected Job|null getNextJob(Queue $connection, string $queue)
Получить следующую задачу из соединения очереди.
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 markJobAsFailedIfHasExceededMaxAttempts(string $connectionName, Job $job, int $maxTries, Exception $e)
Отметить заданную задачу как завершенную с ошибкой, если она превысила максимальное количество попыток.
protected void failJob(string $connectionName, 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 void raiseFailedJobEvent(string $connectionName, Job $job, Exception $e)
Вызвать событие о том, что задача в очереди завершилась с ошибкой.
bool memoryExceeded(int $memoryLimit)
Определить, превышен ли лимит памяти.
void stop()
Остановить прослушивание и выйти из скрипта.
void sleep(int $seconds)
Заставить скрипт спать в течение заданного количества секунд.
protected int|null getTimestampOfLastQueueRestart()
Получить метку времени последней перезагрузки очереди или null.
protected bool queueShouldRestart(int|null $lastRestart)
Определить, должен ли рабочий процесс очереди перезапуститься.
void setCache(Repository $cache)
Установить реализацию репозитория кэша.
QueueManager getManager()
Получить экземпляр диспетчера очереди.
void setManager(QueueManager $manager)
Установить экземпляр диспетчера очереди.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.3/Illuminate/Queue/Worker.html