首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python stomp.py客户端在activemq中调度延迟消息

如何使用python stomp.py客户端在activemq中调度延迟消息
EN

Stack Overflow用户
提问于 2016-12-17 06:01:06
回答 1查看 879关注 0票数 2

我正在使用python sompt.py访问我的ActiveMQ服务器。

我创建了客户端并发送数据。但我必须Schedule Delay Message

代码语言:javascript
复制
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('received a message "%s"' % message)

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

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

conn.send(body=' '.join(sys.argv[1:]), destination='/queue/test')

time.sleep(2)
conn.disconnect()

我查看了JAVA示例,其中用户可以传递headerssendstomp.py中也将headers作为参数,但我不知道必须在其中传递哪个密钥。

stomp.constants没有任何用于延迟的报头。

已尝试AMQ_SCHEDULED_DELAY标头,但似乎不起作用。

代码语言:javascript
复制
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()

输出:

代码语言:javascript
复制
test@localhost$ 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"
EN

回答 1

Stack Overflow用户

发布于 2016-12-17 08:04:48

通过STOMP发送调度消息的值与代理的Java代码中的值的定义相匹配,但是作为快速参考,您可以在Apache NMS STOMP站点上查看快速example

取值如下:

代码语言:javascript
复制
"AMQ_SCHEDULED_DELAY" = delay in milliseconds
"AMQ_SCHEDULED_PERIOD" = repeat period in milliseconds
"AMQ_SCHEDULED_REPEAT" = repeat count
"AMQ_SCHEDULED_CRON" = cron entry such as "0 * * * *"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41193036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档