Работник
класс Работник (Просмотреть исходный код)
Трейты
| DetectsLostConnections |
Константы
| EXIT_SUCCESS |
| EXIT_ERROR |
| EXIT_MEMORY_LIMIT |
Свойства
| protected string | $name | Имя работника. | |
| protected Factory | $manager | Экземпляр менеджера очереди. | |
| protected Dispatcher | $events | Экземпляр диспетчера событий. | |
| protected Repository | $cache | Реализация хранилища кэша. | |
| protected ExceptionHandler | $exceptions | Экземпляр обработчика исключений. | |
| protected callable | $isDownForMaintenance | Обратный вызов для определения, находится ли приложение в режиме технического обслуживания. | |
| protected callable | $resetScope | Обратный вызов для сброса области приложения. | |
| bool | $shouldQuit | Указывает, должен ли работник завершить работу. | |
| bool | $paused | Указывает, приостановлен ли работник. | |
| static protected callable[] | $popCallbacks | Обратные вызовы для извлечения задач из очередей. |
Методы
| bool | causedByLostConnection(Throwable $e)
Определить, было ли вызвано данное исключение потерей соединения. | из DetectsLostConnections |
| void | __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance, callable|null $resetScope = null)
Создать новый рабочий процесс очереди. | |
| int | 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)
Определить, должен ли демон обрабатывать на этой итерации. | |
| int|null | pauseWorker(WorkerOptions $options, int $lastRestart)
Приостановить работу для текущего цикла. | |
| int|null | stopIfNecessary(WorkerOptions $options, int $lastRestart, int $startTime = 0, int $jobsProcessed = 0, 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, Throwable $e)
Обработать исключение, возникшее во время выполнения задачи. | |
| void | markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Job $job, int $maxTries)
Отметить задачу как неудачную, если она превысила максимально допустимое количество попыток. | |
| void | markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Job $job, int $maxTries, Throwable $e)
Отметить задачу как неудачную, если она превысила максимально допустимое количество попыток. | |
| void | markJobAsFailedIfWillExceedMaxExceptions(string $connectionName, Job $job, Throwable $e)
Отметить задачу как неудачную, если она превысила максимально допустимое количество попыток. | |
| void | markJobAsFailedIfItShouldFailOnTimeout(string $connectionName, Job $job, Throwable $e)
Отметить задачу как неудачную, если она должна завершиться неудачей по таймауту. | |
| void | failJob(Job $job, Throwable $e)
Отметить задачу как неудачную и поднять соответствующее событие. | |
| int | calculateBackoff(Job $job, WorkerOptions $options)
Рассчитать отложенную обработку для данной задачи. | |
| void | raiseBeforeJobPopEvent(string $connectionName)
Поднять событие перед извлечением задачи. | |
| void | raiseAfterJobPopEvent(string $connectionName, Job|null $job)
Поднять событие после извлечения задачи. | |
| void | raiseBeforeJobEvent(string $connectionName, Job $job)
Поднять событие перед обработкой задачи очереди. | |
| void | raiseAfterJobEvent(string $connectionName, Job $job)
Поднять событие после обработки задачи очереди. | |
| void | raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Throwable $e)
Поднять событие о возникновении исключения в задаче очереди. | |
| bool | queueShouldRestart(int|null $lastRestart)
Определить, следует ли перезапускать рабочий процесс очереди. | |
| int|null | getTimestampOfLastQueueRestart()
Получить метку времени последнего перезапуска очереди или null. | |
| void | listenForSignals()
Включить асинхронные сигналы для процесса. | |
| bool | supportsAsyncSignals()
Определить, поддерживаются ли "асинхронные" сигналы. | |
| bool | memoryExceeded(int $memoryLimit)
Определить, был ли превышен лимит памяти. |
| int | stop(int $status = 0, WorkerOptions|null $options = null)
Остановить прослушивание и выйти из сценария. | |
| never | kill(int $status = 0, WorkerOptions|null $options = null)
Завершить процесс. | |
| MaxAttemptsExceededException | maxAttemptsExceededException(Job $job)
Создать экземпляр MaxAttemptsExceededException. | |
| TimeoutExceededException | timeoutExceededException(Job $job)
Создать экземпляр TimeoutExceededException. | |
| void | sleep(int|float $seconds)
Заставить скрипт поспать на заданное количество секунд. | |
| $this | setCache(Repository $cache)
Установить реализацию репозитория кеша. | |
| $this | setName(string $name)
Установить имя работника. | |
| static void | popUsing(string $workerName, callable $callback)
Зарегистрировать обратный вызов для извлечения заданий. | |
| Factory | getManager()
Получить экземпляр менеджера очереди. | |
| void | setManager(Factory $manager)
Установить экземпляр менеджера очереди. |
Подробности
protected bool causedByLostConnection(Throwable $e)
Определить, было ли данное исключение вызвано потерей соединения.
void __construct(Factory $manager, Dispatcher $events, ExceptionHandler $exceptions, callable $isDownForMaintenance, callable|null $resetScope = null)
Создать нового работника очереди.
int 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 int|null pauseWorker(WorkerOptions $options, int $lastRestart)
Приостановить работника на текущем цикле.
protected int|null stopIfNecessary(WorkerOptions $options, int $lastRestart, int $startTime = 0, int $jobsProcessed = 0, mixed $job = null)
Определить код выхода для остановки процесса, если необходимо.
void runNextJob(string $connectionName, string $queue, WorkerOptions $options)
Обработать следующее задание в очереди.
protected Задача|null getNextJob(Очередь $connection, string $queue)
Получить следующую задачу из очереди подключения.
protected void runJob(Задача $job, string $connectionName, ПараметрыРаботника $options)
Обработать заданную задачу.
protected void stopWorkerIfLostConnection(Исключение $e)
Останавливает работника, если потеряна связь с базой данных.
void process(string $connectionName, Задача $job, ПараметрыРаботника $options)
Обработать заданную задачу из очереди.
protected void handleJobException(string $connectionName, Задача $job, ПараметрыРаботника $options, Исключение $e)
Обработать исключение, произошедшее во время выполнения задачи.
protected void markJobAsFailedIfAlreadyExceedsMaxAttempts(string $connectionName, Задача $job, int $maxTries)
Отметить заданную задачу как завершенную с ошибкой, если она превысила максимальное количество попыток.
Вероятно, это произойдет, если задача ранее превысила лимит времени.
protected void markJobAsFailedIfWillExceedMaxAttempts(string $connectionName, Задача $job, int $maxTries, Исключение $e)
Отметить заданную задачу как завершенную с ошибкой, если она превысит максимальное количество попыток.
protected void markJobAsFailedIfWillExceedMaxExceptions(string $connectionName, Задача $job, Исключение $e)
Отметить заданную задачу как завершенную с ошибкой, если она превысила максимальное количество попыток.
protected void markJobAsFailedIfItShouldFailOnTimeout(string $connectionName, Задача $job, Исключение $e)
Отметить заданную задачу как завершенную с ошибкой, если она должна завершаться с ошибкой при истечении времени.
protected void failJob(Задача $job, Исключение $e)
Отметить заданную задачу как завершенную с ошибкой и вызвать соответствующее событие.
protected int calculateBackoff(Задача $job, ПараметрыРаботника $options)
Рассчитать время ожидания для заданной задачи.
protected void raiseBeforeJobPopEvent(string $connectionName)
Вызвать событие перед извлечением задачи из очереди.
protected void raiseAfterJobPopEvent(string $connectionName, Job|null $job)
Вызвать событие после извлечения задания.
protected void raiseBeforeJobEvent(string $connectionName, Job $job)
Вызвать событие перед заданием очереди.
protected void raiseAfterJobEvent(string $connectionName, Job $job)
Вызвать событие после задания очереди.
protected void raiseExceptionOccurredJobEvent(string $connectionName, Job $job, Throwable $e)
Вызвать событие о возникновении исключения при выполнении задания очереди.
protected bool queueShouldRestart(int|null $lastRestart)
Определить, следует ли перезапустить обработчик очереди.
protected int|null getTimestampOfLastQueueRestart()
Получить отметку времени последнего перезапуска очереди или null.
protected void listenForSignals()
Включить асинхронные сигналы для процесса.
protected bool supportsAsyncSignals()
Определить, поддерживаются ли асинхронные сигналы.
bool memoryExceeded(int $memoryLimit)
Определить, превышен ли лимит памяти.
int stop(int $status = 0, WorkerOptions|null $options = null)
Остановить прослушивание и прервать выполнение скрипта.
never kill(int $status = 0, WorkerOptions|null $options = null)
Завершить процесс.
protected MaxAttemptsExceededException maxAttemptsExceededException(Job $job)
Создать экземпляр MaxAttemptsExceededException.
protected TimeoutExceededException timeoutExceededException(Job $job)
Создать экземпляр TimeoutExceededException.
void sleep(int|float $seconds)
Засыпать скрипт на заданное количество секунд.
$this setCache(Repository $cache)
Установить реализацию репозитория кэша.
$this setName(string $name)
Установить имя обработчика.
static void popUsing(string $workerName, callable $callback)
Зарегистрировать обратный вызов для выбора заданий.
Factory getManager()
Получить экземпляр менеджера очереди.
void setManager(Factory $manager)
Установить экземпляр менеджера очереди.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Queue/Worker.html