У меня есть система, которая будет генерировать сообщения время от времени, и я хотел бы отправлять только ноль или одно сообщение каждые 5 минут. Если сообщение не генерируется, ничего не будет обработано потребителем очереди. Если в течение 5 минут генерируется сотня идентичных сообщений, я хочу, чтобы из очереди использовалось только одно из них.
Я использую AMQP (RabbitMQ), есть ли способ сделать это в rabbitmq или протоколе AMQP? Могу ли я проверить содержимое очереди, чтобы убедиться, что я не вставил дубликат? Кажется, что проверка очереди - плохая идея, а не то, что следует делать для системы обмена сообщениями.
Без проверки очереди это можно сделать с помощью этих инструментов? Единственное решение, которое приходит на ум, - это иметь вторую очередь, которая принимает все сообщения, затем потребитель читает каждое сообщение и помещает его во внутреннюю очередь, ждет в течение 5 минут, и все полученные повторяющиеся сообщения отбрасываются. После задержки одно сообщение помещается в «реальную» очередь для обработки.
Кажется, что это может быть обычной ситуацией, которую может обработать система очередей. Есть идеи?