sql - MSMQ v 数据库表

标签 sql msmq message-queue

现有流程根据用户输入更改表中预订记录的状态字段。

我有另一个进程要编写,它将异步运行具有特定状态的记录。它将读取表记录,执行一些操作(包括调用第三方 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/

相关文章:

msmq - 寻找能够提供完全 ACID 和什么都没有的消息总线实现

mysql - 为什么在 SQL 查询中出现错误?

sql - 将 SQL 查询转换为 Django

PHP MySQL- 根据 GET 变量更改 Where 语句

caSTLe-windsor - MassTransit 2.6.1 请求/响应模式 - 响应超时

linux - SysV 消息队列数量增加

linux - Posix 消息队列和命令行?

mysql - 无法识别表达式中的别名

c++ - MSMQ - C++ 还是 COM?

c# - 有没有实现类似于MSMQ(Microsoft Message Queuing)的消息队列的免费库?