现有流程根据用户输入更改表中预订记录的状态字段。
我有另一个进程要编写,它将异步运行具有特定状态的记录。它将读取表记录,执行一些操作(包括调用第三方 Web 服务),并更新记录的状态字段以指示处理已完成(或 In Error,带有错误计数)。
此操作听起来与队列非常相似。在这种情况下,在 SQL 表上使用 MSMQ 的好处和折衷是什么,为什么我应该选择一个而不是另一个?
添加和更新表中记录的是我们的软件。
这是一项将执行异步处理的新工作(Windows 服务)。这需要“永远在线”。
最佳答案
有几个原因,这里在 Fog Creek 论坛上讨论过:http://discuss.fogcreek.com/joelonsoftware5/default.asp?cmd=show&ixPost=173704&ixReplies=5
主要好处是,当计算机之间存在间歇性连接时(使用本地计算机上的存储和转发机制),仍然可以使用 MSMQ。就应用程序而言,它会将消息传递给 MSMQ,即使 MSMQ 可能会在稍后传递消息。
只有在可以连接到数据库时才能向表中插入记录。
当需要工作流方法时,表方法更好,并且该过程将经历各个阶段,并且这些阶段需要在数据库中持久化。
关于sql - MSMQ v 数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380052/