一尘不染

MSMQ v数据库表

sql

现有过程响应于用户输入而改变表中的预订记录的状态字段。

我还有另一个要编写的过程,该过程将针对具有特定状态的记录异步运行。它将读取表记录,执行一些操作(包括对第三方Web服务的调用),并更新记录的状态字段以指示处理已完成(或发生错误,并带有错误计数)。

这个操作听起来非常类似于队列。在这种情况下,在SQL表上使用MSMQ有什么好处和缺点,为什么我要选择一个呢?

是我们的软件在表中添加和更新记录。

这是一项新的工作(Windows服务),将执行异步处理。这需要“始终保持”。


阅读 117

收藏
2021-03-17

共1个答案

一尘不染

有几个原因,在这里的Fog
Creek论坛上进行了讨论:http
:
//discuss.fogcreek.com/joelonsoftware5/default.asp?cmd=show&ixPost=173704&ixReplies=5

主要好处是,当计算机之间存在间歇性连接时(使用本地计算机上的存储和转发机制),仍可以使用MSMQ。就应用程序而言,即使MSMQ稍后可能会传递消息,它也会将消息传递给MSMQ。

当您可以连接到数据库时,您只能将记录插入到表中。

当需要使用工作流方法时,表方法会更好,并且该过程将经历多个阶段,并且这些阶段需要持久存储在数据库中。

2021-03-17