3

并不是说写一个不够容易(或有趣),可以说不要重新发明轮子是有道理的。我环顾了各种尝试,但似乎还没有遇到支持这些标准的实现;

具有MongoDB持久性的简单队列OSS系统;

  • 基于 C# Driver (official) (so full POCO serialization)
  • Tailable 游标而不是轮询
  • 处理消息超时(GC 正确)
  • 处理消费者故障(理想情况下检测重新插入崩溃,但延迟重新插入超时很好)所以 findAndModify 完成
  • 多个作者,多个消费者
  • 线程安全

很高兴有;

  • 允许(仅最新)消息(替换 Q 中的旧消息)

如果有人在 GitHub 上有一个我还没有找到的简单的库,请说出来!

4

1 回答 1

0

这是我的一个小项目——一个.net 消息总线实现,它与 MS SQL 队列或 MongoDB 一起工作(MongoDB 支持是最近添加的)。链接:http ://code.google.com/p/nginn-messagebus/和http://nginn.org/blog以获取一些示例。我不确定这是否是您正在寻找的东西,它也缺乏文档和示例部门,并且与您的规格不完全匹配(轮询而不是拖尾) - 但也许值得一试。这是一个发布-订阅消息总线,如 NServiceBus 或 MassTransit - 不是原始消息队列。

PS恐怕在您的规范中有相互排斥的要求:您不能将可尾游标与并发消费者一起使用,因为您失去了原子性。如果你想尾随队列,你应该只使用一个消费者。

于 2012-12-01T15:04:31.063 回答