У меня есть очередь AWS SQS FIFO, настроенная для дедупликации сообщений на основе содержимого.Мое приложение rails использует рабочий Shoryuken для получения сообщений от SQS.Вот рабочий код:
class MyJob
include Shoryuken::Worker
shoryuken_options queue: "myjobs-#{ENV['RAILS_ENV']}.fifo",
auto_delete: true,
body_parser: JSON
def perform(message_meta, message_body)
# do stuff
end
end
Как видите, он настроен на автоматическое удаление сообщений из очереди после их получения.Но сегодня произошло нечто странное.Я заметил, что работник выполняет большое количество одинаковых задач.Когда я открыл Очередь SQS в Консоли AWS, я увидел, что в ней было сообщение, которое выглядело как полученное несколько раз рабочим.Вот его атрибуты, обратите внимание на счетчик получения:
ID сообщения: 9207017f-ad15-4de8-97c4-cf391c8f3840
Размер: 1,3 КБ
MD5 тела: 55918bf431e31e4badae0720453aea35
Отправлено: 2018-12-11 10: 40: 53.978 GMT-08: 00
Первое поступление: 2018-12-11 10: 40: 54.045 GMT-08: 00
Счетчик приема: 2654
Количество атрибутов сообщения: 0
Идентификатор группы сообщений: сообщение по умолчанию
Идентификатор дедупликации: c5fb9acda5e3c9c82dc0ae3f0b1cff5bd70dd1fcb94_d1cc94*
Порядковый номер: 37288893882837472512
Есть идеи, как это могло произойти?
Детали платформы: Ubuntu, ruby 2.5.3, Rails: 5.2.2, Shoryuken: 4.0.2