【问题标题】:How to implement MSMQ Receive as like Azure Queue?如何像 Azure 队列一样实现 MSMQ 接收?
【发布时间】:2015-02-18 19:46:53
【问题描述】:

我们正在将应用程序从 Azure 迁移到具有 Queue 选项的 On Prem,并决定像 Azure Queue 一样实现 MSMQ,但某些选项在 MSMQ 队列中并不完全可用。

  1. Azure Queue 中的 AddMessage & Peekmessage 和 MSMQ 中的 Send & Peek 相同
  2. Azure Queue 中的 GetMessage 用于获取下一个队列消息,我们可以设置可见时间以避免其他人处理同一个队列。 在 MSMQ 中接收以获取最新消息,同时自动从队列中删除。
  3. Azure 队列中的 DeleteMessage,从队列中获取消息后一切正常,然后我们必须使用 DeletMessage 删除消息,但我们在 MSMQ 中没有此选项。
  4. Azure Queue 中的 Updatemessage 用于更新消息,但我们在 MSMQ 中没有此选项。

请帮助我,如何实现 GetMessage,就像我们在 Azure 队列中使用的一样。

【问题讨论】:

    标签: azure msmq


    【解决方案1】:

    我不认为有一个简单的方法可以做到这一点。

    要删除和获取消息,您只需将其出列并处理即可。

    您可以使用 ReceiveById 方法来做到这一点:

    https://msdn.microsoft.com/en-us/library/0t877y0k(v=vs.110).aspx

    【讨论】:

    • 谢谢@Thiago。是的,我可以为此使用 Peek 和 ReceiveById,但是当我们使用 Peek 时如何锁定消息,因为其他人不应再次处理相同的消息,例如 Getmessage 在 Azure 队列中的可见时间。
    • 我不确定是否有选项。但是为什么要使用 peek 而不是 receive?
    • 这么多用户同时访问我们应用程序中的队列。在那,我们不应该允许用户访问同一个队列,因为很多功能依赖于进程之后的队列。这是主要问题。
    猜你喜欢
    • 2018-06-11
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多