我希望我的Flask应用程序具有几个ActiveMQ侦听器。我正在使用stomp.py收听事件。这两个组件都可以独立运行,集成后我无法接收消息
from flask import Flask
import stomp
import time
class EventManager(stomp.Connection):
def on_message(self, header, body):
print('Hello', header, body)
event_name = 'anything'
queue_name = '/queue/ml_notification'
def listen_to_event():
connection = stomp.Connection()
connection.set_listener(name=event_name, lstnr=EventManager())
connection.connect('admin', 'admin', wait=True)
connection.subscribe(destination=queue_name, id=event_name, ack='auto')
return None
def create_app(config_name=None):
app = Flask(__name__)
listen_to_event()
return app
我的观察是-由于范围,侦听器在接收器线程上工作。队列的订阅被终止,并且为了使回调侦听器,我可能希望在单独的线程中生成订阅。
我认为这是一个普遍要求,必须有一个标准解决方案,该解决方案消除了最终开发人员显式创建线程的需要。应该存在stomp_plugin(flask_app, stomp_config)
之类的东西。