Python JMS Stomp客户端和Apache ActiveMQ-Listener不起作用



我有一个使用Stomp用python编写的JMS客户端。我正在运行Apache activemq 5.10.0。

我有一个名为TEST的队列,我拥有的客户端打印日志消息,表明它正在从队列中读取消息,但我的onMessage方法中的打印语句不起作用。ActiveMQ显示客户端已经读取了消息,Stomp库中的记录器会打印一条消息,但onMessage()print语句不会显示。

有什么建议吗?

这是代码:

import time
import sys
import logging
import stomp
from stomp import ConnectionListener
queuename = sys.argv[1]
logging.basicConfig( level=logging.DEBUG)
class MyListener(ConnectionListener):
    message_count = 0
    def on_error(self, headers, message):
        print 'received an error %s' % message
    # onMessage is WRONG - should be on_message
    # def onMessage(self, headers, message):
    def on_message(self, headers, message):
        print headers
        print str(message)
        print type(message)
        print "Message %d" %(message_count)
        message_count = message_count + 1
        print 'received a message ...%s...' % message

conn = stomp.Connection()
conn.set_listener('', MyListener())
conn.start()
conn.connect()
queue = '/queue/%s' % queuename
print "Queue is [%s]" % queue
print "subscribe: %s" % conn.subscribe
conn.subscribe(destination=queue, id=123421, ack='auto')
while 1:
    time.sleep(2)

当然是在发布后大约30分钟找到的。。onMessage方法应为on_message。

这是我修改的示例代码,但不正确。

做出这样的改变,效果会很好。

最新更新