python - 如何在 ActiveMQ 中为 python Stomp 客户端使用消息重新传递
问题描述
我有来自队列的订阅者客户端,我可以确认收到的消息。
当我执行 NACK 时,消息未重新发送到队列。
帮我将消息重新发送到队列。
import ssl
from stompest.config import StompConfig
from stompest.sync import Stomp
from stompest.protocol import StompSpec
user = "admin"
password = "admin"
host = "localhost"
port = 61613
config = StompConfig('tcp://%s:%d' % (host, int(port)), login=user, passcode=password, version=StompSpec.VERSION_1_2,
sslContext=sslContext)
client = Stomp(config)
client.connect(host=host)
client.subscribe(destination=destination, headers={StompSpec.ACK_HEADER: StompSpec.ACK_CLIENT_INDIVIDUAL, "id":"1"})
while True:
data = client.receiveFrame()
client.nack(data)
activemq.xml 中的代理和重新交付配置
<broker schedulerSupport="true">
<plugins>
<redeliveryPlugin fallbackToDeadLetter="true"
sendToDlqIfMaxRetriesExceeded="true">
<redeliveryPolicyMap>
<redeliveryPolicyMap>
<redeliveryPolicyEntries>
<!-- a destination specific policy -->
<redeliveryPolicy queue="SpecialQueue"
maximumRedeliveries="4"
redeliveryDelay="10000"/>
</redeliveryPolicyEntries>
<defaultEntry>
<!-- the fallback policy for all other destinations -->
<redeliveryPolicy maximumRedeliveries="4"
initialRedeliveryDelay="5000"
redeliveryDelay="10000"/>
</defaultEntry>
</redeliveryPolicyMap>
</redeliveryPolicyMap>
</redeliveryPlugin>
</plugins>
</broker>
解决方案
推荐阅读
- java - 如何将paintComponent 方法连接到JButton 以绘制矩形或椭圆?
- django - Django 不将结果输出到表中
- node.js - 如何在 Firebase Cloud Functions 中捆绑和要求非 JS 依赖项?
- go - 无法模拟结构进行测试
- botframework - 某些 Teams 系统消息上的 Teams 机器人的 onTurn 错误
- r - 多项式 Reg 的 Wald 检验。在 R 中
- html - 如何在底部修复页脚?
- javascript - 设置 sessionStorage,更改图像
- ruby-on-rails - 如何从 Rails Admin 的搜索过滤器中排除字段?
- .net - .net core 2.1 VS 2017 basic web api 抛出“无法访问此站点”