У меня есть производитель SQS и много потребителей. Было бы очень полезно знать, может ли производитель определить, было ли конкретное сообщение удалено потребителем или нет. Есть ли способ сделать это? В настоящее время я использую boto 2.6.0.
Получение состояния сообщения SQS в boto
Ответы (2)
Насколько мне известно, SQS не предоставляет никакого механизма уведомления об удалении сообщения. Итак, я думаю, если вы хотите знать, когда сообщения удаляются, вам придется отслеживать это отдельно, сохраняя базу данных идентификаторов сообщений и заставляя потребителей сообщать вам идентификатор сообщения для любых сообщений, которые они удалили.
Насколько я знаю, вы не можете отслеживать сообщение в очереди. В зависимости от вашей цели вы можете попробовать следующие вещи:
Мониторинг
Запишите результаты задания в файл журнала и, возможно, используйте что-то вроде logstash с Кибана. Если вы проявите творческий подход, вы можете даже запустить что-то прямо во что-то вроде ElasticSearch или SimpleDB.
Обратный звонок
Получатели могут запускать любой тип «обратного вызова» процессору или любому другому процессу, обновляющему определенное состояние сообщения, например, в базе данных или кэше.
Вы должны иметь в виду, что это означает, что, пока вы масштабируете свои приемники, ваш процессор также должен масштабироваться. Также следите за своими индексами, убедитесь, что ваше обновление статуса «запись» происходит быстро.