2009-04-11 38 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