Некоторое время go AWS вводил SQS FIFO очередь , что гарантирует message ordering
и exactly one processing
. Мой вопрос касается второго предположения, не следует ли изменить его на exactly one delivery
?
Поскольку даже если в очереди может быть только одна копия сообщения, я могу подумать о ситуациях, когда сообщение могут быть обработаны более одного раза. Один пример может быть:
- Worker1 опрашивает сообщение из очереди. Тайм-аут видимости начинается.
- Из-за большого трафика / нагрузки работник worker1 превышает окно видимости для обработки сообщения.
- Сообщение возвращается видимым в очереди.
- Worker2 опрашивает то же сообщение из очереди.
- Worker1 заканчивает обработку сообщения.
- Worker2 заканчивает обработку сообщения.
Из того, что я вижу, нам все еще нужны идемпотентные работники даже при использовании очередей FIFO. Верно ли мое предположение или я что-то упустил?