Ошибка при использовании SQS с несколькими программами чтения очереди Laravel

Я использую Laravel Jobs для чтения сообщений из очереди SQS (Laravel версия 5.7)

После Laravel показания Я использую супервизор для запуска нескольких queue:work процессы одновременно.

Все идет хорошо, пока я не получу эту ошибку SQS, связанную с доступностью сообщения:

InvalidParameterValue (client): Value
... for parameter ReceiptHandle is invalid. Reason: Message does not exist or
is not available for visibility timeout change. - <?xml version="1.0"?>
<ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error>
<Type>Sender</Type><Code>InvalidParameterValue</Code><Message>Value ...
for parameter ReceiptHandle is invalid. Reason: Message does not exist or is
not available for visibility timeout change.</Message><Detail/></Error>
<RequestId>8c1d28b7-a02c-5059-8b65-7c6292a0e56e</RequestId></ErrorResponse>
{"exception":"[object] (Aws\\Sqs\\Exception\\SqsException(code: 0): Error
executing \"ChangeMessageVisibility\" on \"https://sqs.eu-central-
1.amazonaws.com/123123123123/myQueue\"; AWS HTTP error: Client error: `POST
https://sqs.eu-central-1.amazonaws.com/123123123123/myQueue` resulted in a
`400 Bad Request` response:

В частности, странная вещь Message does not exist or is not available for visibility timeout change.

Каждый процесс супервизора вызывает command=php /home/application/artisan queue:work без --sleep=3 (Я бы хотел, чтобы процесс был реактивным и не ожидал 3 секунды, если в очереди ничего не было), ни --tries=3 (Мне нужно, чтобы все задачи были выполнены, поэтому я не ограничиваю tries параметр)

Если сообщение не существует (и я не могу исключить эту возможность), почему процесс извлекает его из очереди? Что я могу сделать, чтобы предотвратить это?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector