使用Ruby Stomp Gem处理持久性消息并重新发送异常

时间:2014-09-17 14:29:10

标签: ruby-on-rails ruby activemq stomp activemessaging

我试图在rails应用中使用Stompgem(https://github.com/stompgem/stomp)和Activemessaging(https://github.com/kookster/activemessaging)来发布持久/可靠的消息(即使用户崩溃,也要有弹性通过处理)

有没有办法可以持续发布到某个主题,重新发送工作给任何失败/定时/错误的订阅者?

使用stompgem进行发布:

@client.publish("/topic/" + topic_name, data_hash.to_json, {:persistent => true})

参考:https://github.com/stompgem/stomp/blob/dev/examples/publisher.rb

使用activemessaging进行主题订阅

class ProcessPublisherProcessor < ApplicationProcessor

    subscribes_to :process_publisher, :ack => :client

    def on_message(message)
        logger.debug "ProcessPublisherProcessor received: " + message
    end

end

我已尝试过添加以下内容的建议:persistent =&gt;如果为true,则添加:ack =&gt; :客户进入订户。

通过on_message终止订户(通过停止ruby进程或抛出随机异常)导致消息不被代理重新传递(在这种情况下为Activemq)。

目标:

  • 可靠地发布主题
  • 订阅从主题接收消息并明确确认消息已被消费
  • 在将消息放入我选择的DLQ(死信队列)之前,代理最多进行X次重新传递尝试。

谢谢,

0 个答案:

没有答案