【发布时间】:2015-11-02 13:32:09
【问题描述】:
我想在用户(消息发布者)的消息将被处理时(而不是在完成时)向他们提供反馈。
理论上我可以接收所有消息,计算并重新安排它们。这将是愚蠢的,因为新到达的消息将被立即处理,因为在新消息将在新(初始最后)消息之后重新安排之前的所有消息。
有没有办法用 RabbitMQ 确定特定消息之前的消息数量?
【问题讨论】:
我想在用户(消息发布者)的消息将被处理时(而不是在完成时)向他们提供反馈。
理论上我可以接收所有消息,计算并重新安排它们。这将是愚蠢的,因为新到达的消息将被立即处理,因为在新消息将在新(初始最后)消息之后重新安排之前的所有消息。
有没有办法用 RabbitMQ 确定特定消息之前的消息数量?
【问题讨论】:
恐怕目前服务器端没有办法找到在特定消息之前发布的消息数,尽管 rabbitmq 提供了一个HTTP API,它返回当前队列中的消息数。
您必须在客户端(如计数器或其他东西)最好在发布者端维护此统计信息。但请确保只发布一次消息以避免重复计数或以这样的方式实现您的计数器(为每条消息保留一个唯一标识符)以避免多次计算同一条消息(如果允许重新发布)。
之前有人问过类似的问题:
RabbitMQ - Get total count of messages enqueued
【讨论】: