У меня есть функция контроллера, которая отправляет job
.Когда этот job
обработан, в конце он снова отправляет тот же job
(с разными аргументами).Всего существует 5 одинаковых заданий.
Queue driver: database
Проблема в том, что я записываю продолжительность от create()
до handle()
.Первое задание, отправленное контроллером, заняло 1700 мс, в то время как остальные задания, отправленные самими заданиями, заняли всего 40 мс.
Queue driver: sync
Когда я переключился на использование sync
драйвера очереди, всезадания работали с молниеносной скоростью.
Выводы:
Первое задание очереди заняло много времени с create()
до handle()
.До этого очередь была пуста.Это может быть проблема с драйвером очереди.
Почему и как исправить, пожалуйста?спасибо !!
ОБНОВЛЕНИЕ:
Добавлен TestJob
, который отправляется при обработке задания.Это означало, что очередь всегда обрабатывала или ожидала обработки TestJob
.
Повторяя мои исходные задания, все они занимали всего <70 мс с <code>created() до handle()
выполнено.
Вывод:
Я почти уверен, что это проблема с драйвером очереди.Похоже, рабочий засыпает, когда очередь пуста.Кто-нибудь знает исправление, пожалуйста?