我试图在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)。
目标:
谢谢,