Yii2. Queue. Как установить time_limit (max_execution_time)?

Главная  >>  Backend  >>  Yii2. Queue. Как установить time_limit (max_execution_time)?

Работа с очередями позволяет распараллелить некоторые процессы и\или вынести особо время затратные задачи в очередь. В этой статье я раскажу, как изменить лимит времени на выполнение задачи (max_execution_time).

Общие принципы работы с yii2-queue я описывал ранее здесь.

Первая мысль, что мне пришла, когда я увидел сообщение об ошибке о завершении таска из-за временного лимита — конечно же, set_time_limit(0). Но на практике ничего не изменилось и я начал искать другое решение.

Оно оказалось достаточно простым и описаным в документации, но я его упустил из-за неочевидности названия ключа.

Итак, чтоб изменить время выполнения таска нужно при подключении компонента очереди указать параметр ttr равным желаемому кол-ву секунд.

Свойство ttr как раз выполняет искомую функцию. Его значение равно количеству секунд, которые отведены на выполнение таска. Т.е. 300 — будет означать лимит в 5 минут. И самое главное, что 0 — означает отсутствие ограничений для особо длительных задач.

Вот и всё решение! Если остались вопросы по работе очередей и управлению ими — пишите в комментарии. Удачи!