2017-04-25 10 views
1

ドッカーのコンテナにActiveMQサーバを実行しています。stomp.pyを使用すると、AMQ_SCHEDULED_DELAYがメッセージを遅らせることはありません

私はメッセージを遅らせるためにAMQ_SCHEDULED_DELAYヘッダーを使用しています。

import time 
import sys 

import stomp 

class MyListener(stomp.ConnectionListener): 
    def on_error(self, headers, message): 
     print('received an error "%s"' % message) 
    def on_message(self, headers, message): 
     print "Time for message receive: %s", time.strftime('%H:%M:%S') 
     print('received a message "%s"' % message) 

conn = stomp.Connection() 
conn.set_listener('', MyListener()) 
conn.start() 
conn.connect(wait=True) 

conn.subscribe(destination='/queue/test', id=1, ack='auto') 

print "Time for send message: %s", time.strftime('%H:%M:%S') 
conn.send(body=' '.join(sys.argv[1:]), destination='/queue/test', headers={'AMQ_SCHEDULED_DELAY': 100000}) 

time.sleep(2) 
conn.disconnect() 

出力:

[email protected]$ python /tmp/test.py this is test 
Time for send message: %s 14:03:34 
Time for message receive: %s 14:03:34 
received a message "this is test" 

出力から、そのが動作していないか、私はActiveMQの側から何かを更新する必要がありそうです。

答えて

3

それはactivemq.xmlでtrueにブローカーschedulerSupport属性を設定することで有効になります。

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true"> 

http://activemq.apache.org/delay-and-schedule-message-delivery.html

+0

Hassenを、デフォルトの設定により、これですべてのドッキングウィンドウのイメージはありますか?私は私の展開のために 'activemq'ドッカーを使用しています – Nilesh

+0

私は正直に分かりません –

+0

ありがとうHassenは、 – Nilesh

関連する問題