我目前正在建设两个窗口服务:Microsoft服务互联互通问题
首先从互联网连接需要的信息,然后将这些存入数据库。这被设计为快速和稳定,并且不做任何其他处理
第二个执行一个批处理过程,其中包含自上次运行以来已经到达的任何新消息。
我试图想办法,这样,当新邮件准备处理的第二个服务将只运行它的批量处理,如果第二服务失误的第一个服务将继续下去,反之亦然。目前它每5秒使用一个循环。
我目前正在考虑使用消息队列,其中第一个服务只在队列为空时写入消息,第二个服务将查看队列是否包含任何消息,如果不是进入异步等待直到消息到达,然后删除该消息并运行。因此,使用队列不是真正的队列,而是作为二进制开关,当它的状态发生变化时会引发事件被触发到第二个服务。
我认为有没有更好的方法来做到这一点,我没有遇到过,有人请指出我在正确的方向吗?
谢谢你的回答casperOne。我已经详细阐述了我的问题。我可能实际上在滥用队列机制,因为我想将消息存储在数据库中,而不是将它们全部存储到队列中,所以将使用队列作为触发事件的二进制开关。这个可以吗? – bobwah 2009-01-29 08:51:44
你可以做那样的事情。当您在队列中发送消息时,您只需发送与数据库中记录的标识相对应的标识。但是,在双方中,您应该包装数据库记录和队列消息的写入以及事务中的接收。 – casperOne 2009-01-29 16:05:22