SQL Server 和消息队列

2024-01-30

我正在尝试构建一个可靠的消息服务,或者至少我是这么描述它的。

这是我的问题:我有一个表,我将数据插入到该表中,我至少有两个应用程序从该表中选择数据。但是,我需要一种可靠的方法,让两个不同的应用程序在任何给定时间都不会选择相同的行。

我将如何编写一个事务或选择语句来保证不选择其他应用程序最近选择的相同行。

我不是 SQL Server 专家,但我希望得到与此类似的结果。

从表中选择工作,这将使应用程序能够独占访问某些行。然后应用程序将处理这些行。一些行被删除,一些行被返回到数据库。

我主要担心的是,如果应用程序无法完成其处理,SQL Server 最终会超时并将签出的数据返回到应用程序数据池。


向每条记录添加一个“正在处理”标志,该标志以“原子”方式设置。

这里有几个问题和很多答案,与此非常相似:

如何在对某些 SQL 行运行进程时锁定它们? https://stackoverflow.com/questions/46034/how-do-i-lock-certain-sql-rows-while-running-a-process-on-them

消息传递系统中针对表的队列 https://stackoverflow.com/questions/255794/queues-against-tables-in-messaging-systems

在 mysql 中实现消息队列表的最佳方法是什么 https://stackoverflow.com/questions/423111/whats-the-best-way-of-implementing-a-messaging-queue-table-in-mysql

从 SQL Server 将消息发布到 MSMQ http://support.microsoft.com/kb/555070

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 和消息队列 的相关文章

随机推荐