我正在编写消息队列系统。
我的问题是......用文件或数据库做这个队列会更好吗?
如果我要选择数据库,它需要每秒检查一次新的工作,这对我来说似乎有些开销?
如果是文件,我猜你只是不断监视文件夹并根据它执行?
BR,
答案 0 :(得分:28)
[编辑:2014年更新,现在链接到兔子MQ,因为Ayende已经转向制作文档数据库而不是消息队列,但RabbitMQ再次出现了。我不会写这个,但现在帖子需要30个字符所以我需要喋喋不休。]
答案 1 :(得分:26)
我选择选项“C” - 使用已内置于Windows的消息队列:
答案 2 :(得分:5)
您决定“更好”的标准是什么?性能?可扩展性?可靠性?成本?
基本权衡是:
数据库 - 事务支持,完整性保证(通过约束),更丰富的查询支持,可能将更好地扩展(取决于实现)
文件系统 - 更便宜,更简单,移动更少的部件(至少在最初阶段)
您可能希望首先查看现有解决方案 - MSMQ,SQL Server代理,开源库,例如Rhino队列(http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)
答案 3 :(得分:3)
如何查看MSMQ
答案 4 :(得分:2)
这取决于您的要求,但如果您需要将多个邮件排队为一个组,则需要某种事务支持。在这种情况下,数据库就是你的朋友。
答案 5 :(得分:2)
您是否正在编写消息队列系统,因为您要编写消息队列系统;或者这只是解决更大问题的一部分?
我建议不要编写新的消息队列系统。您可以使用MSMQ或其他现成的东西。