我有一个接收传入事件的在线服务(每秒很少)。当没有事件持续30秒或更长时间时,服务需要处理作业。服务分布在多台PC上,并使用Amazon Webservices(SQS和SimpleDB)作为主干。
我理解如何在有传入事件时安排工作(只是将消息放入消息队列并完成),但如果条件是“没有X秒事件”,我该如何安排工作?
理想情况下,我希望邮件队列不允许重复邮件,允许安排未来,并允许调整每条邮件的“投放日期”。
是否有这样的消息队列实现? 如果不在数据库中保留一些数据,这个问题是否可以解决?
谢谢
答案 0 :(得分:0)
BizTalk或SQL Server Service Broker都符合您的要求。如果它们太重量级,你可以编写一个简单的服务,每隔几秒就会查看一次队列,如果在30秒内没有看到任何内容,则会超时。但是,在整个机器上横向扩展会更加困难。