c#中的持久工作队列

本文关键字:工作队列 | 更新日期: 2023-09-27 18:06:22

想象一下,我想有一个小的工作无人机网络,可能在不同的线程上,可能在不同的进程上,甚至在不同的pc上。工作项由中心程序创建。

我正在寻找一个现有的产品或服务,将为我做这一切。我知道有MSMQ和MQSeries。MQSeries太贵了。MSMQ是出了名的不可靠。一个数据库支持的系统会很好,但我不想拥有/管理/编写它。我想使用别人的工作队列系统。

相关文章:

  • 这是一个类似的问题,但它提倡建立一个自定义队列机制。
  • 我最喜欢的队列是这个来自Google App Engine的队列。
  • http://www.codeproject.com/KB/library/DotNetMQ.aspx

c#中的持久工作队列

如果您遵循一些指导原则,您可以成功地将数据库用作队列存储,请参见使用表作为队列。

SQL Server自带内置消息队列,即Service Broker。当涉及到可伸缩性、可靠性、高可用性和灾难恢复场景时,它允许您避免许多MSMQ陷阱。

serviccie Broker完全集成在数据库中(没有外部存储,一个一致的备份/恢复,一个故障转移单元,不需要在消息存储和数据库之间进行昂贵的两阶段提交DTC,一个T-SQL API来访问和编程消息和数据),并且还具有一些不错的独特功能,例如事务性消息传递,保证了一次按顺序交付,相关消息锁定,内部激活等。

我过去在宠物项目中使用过Rabbit MQ,您可以将其添加到队列系统列表中。

至于包装队列的框架,您可以查看http://www.nservicebus.com/,我们已经在这里使用它完成了几个基本项目。下面是一个快速入门的示例:http://meisinger2.wordpress.com/2009/11/09/nservicebus-fifteen-minutes/

我过去曾成功使用过masstrtransit。它支持使用MSMQ和RabbitMQ