2009-04-11 76 views
1

我有一個接收傳入事件(每秒幾次)的聯機服務。服務需要在30秒或更長時間內沒有事件時處理工作。服務分佈在多臺PC上,並使用亞馬遜網絡服務(SQS和SimpleDB)作爲主幹。提供延遲郵件和檢查uniqness的郵件隊列

我知道如何在發生傳入事件時安排一項工作(只需將消息放入消息隊列並完成),但是如果條件爲「X事件無X秒」,我該如何安排一項工作? ?

理想情況下,我想要一個不允許重複消息的消息隊列,允許調度未來並允許調整每個消息的「交付日期」。

是否有這樣的消息隊列實現? 這個問題完全可以解決而不需要在數據庫中保留一些數據?

謝謝

回答

0

BizTalk或SQL Server Service Broker都符合您的要求。如果它們太重,你可以編寫一個簡單的服務,每隔幾秒鐘查看一次隊列,如果在30秒內沒有看到任何東西,就會超時。然而,橫跨機器的橫向擴展將更加困難。

+0

我想你錯過了這個問題。我發現我需要的是「消息分組」,它看起來像AMQP。 這似乎也可以解決任何具有通知的分佈式緩存問題。我現在正在看微軟的Velocity ...... – 2009-04-11 16:47:25