我有一個系統會偶爾生成消息,我只想每5分鐘提交一個零或一條消息。如果沒有消息生成,則隊列消費者不會處理任何消息。如果在5分鐘內生成了100個相同的消息,我只希望其中的一個消息從隊列中消耗。AMQP延遲傳遞和防止重複郵件
我正在使用AMQP(RabbitMQ),有沒有辦法在rabbitmq或AMQP協議內完成此操作?我可以檢查隊列的內容以確保我不插入重複的內容嗎?似乎隊列檢查是一個壞主意,通常不應該爲郵件系統做什麼。
沒有隊列檢查,這可以用這些工具來完成嗎?想到的唯一解決方案是擁有第二個接收所有消息的隊列,然後消費者讀取每條消息並將其放入內部隊列中,等待5分鐘,並丟棄接收到的任何重複消息。延遲之後,單個消息被置於「真實」隊列中進行處理。
看起來這可能是一個常見的情況,一個隊列系統可以處理。有任何想法嗎?