Очередь Laravel:работа не обрабатывает задание быстро

#laravel #queue #amazon-sqs

Вопрос:

Я запускаю очереди с помощью Laravel и подключаюсь к AWS SQS. Очередь выполняется с использованием супервизора в Linux или в качестве служб в Windows. Команда, используемая для запуска процесса очереди, выглядит следующим образом:

queue:work sqs --sleep=12 --tries=3

Я вижу значительную временную задержку (от 15 секунд до 2 минут) между моментом отправки задания из приложения и моментом обработки задания работником очереди.

Обратите внимание, что из приложения задания отправляются без каких-либо задержек.:

DocumentProcessor::dispatch( $document );

Первоначально я заметил такое поведение на сервере Windows на AWS. Позже наблюдайте то же самое и на сервере Linux на AWS. Оба сервера обрабатывают разные виды заданий. Таким образом, это, по-видимому, не связано с работой или сервером, но оно более общее.

На мониторе очереди AWS я вижу, что в доставке нет задержки (0 задержек). Также я регулярно вижу, как обрабатывается пять (5) пустых сообщений в минуту (это означает, что при 12 секундах сна подразумевается 5 (=60/12) сообщений в минуту). Так что, похоже, очередь работает нормально.

Также в журнале не обнаружено исключений или ошибок.

Существуют ли какие-либо другие настройки, которые вызывают эту задержку в обработке задания? (любые настройки по умолчанию в конфигурации очереди или на AWS.)

Я ожидал максимальной задержки в 12 секунд из-за времени ожидания работника очереди. Но задержка от 15 до 2 минут нежелательна.

Комментарии:

1. Если кто-нибудь вернется к этому сообщению за ответом на вышеуказанный вопрос, пожалуйста, прочтите документ AWS о коротком опросе и длительном опросе . Короткий опрос (время ожидания получения сообщения = 0) может привести к задержке.