У меня есть клиентский клиент из очереди, я могу подтвердить полученное сообщение.
, когда я делаю 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>