Python 如何在flask microservices中侦听消息队列
这是我的flask微服务场景Python 如何在flask microservices中侦听消息队列,python,flask,microservices,pika,Python,Flask,Microservices,Pika,这是我的flask微服务场景 活动服务器公开用于购票的api。 A-server将在支付完成后向rabbitmq推送带有订单id(否)的消息。 和C-serverinsertorder\u no到mysql,因为它收到了特定的消息 我的解决方案是启动一个pika线程,它似乎可以工作 # content of /user/src/app.py def create_app(config=None): app = Flask(__name__) t = Thread(target=
活动服务器
公开用于购票的api。
A-server
将在支付完成后向rabbitmq推送带有订单id(否)
的消息。和
C-server
insertorder\u no
到mysql,因为它收到了特定的消息
我的解决方案是启动一个pika线程,它似乎可以工作
# content of /user/src/app.py
def create_app(config=None):
app = Flask(__name__)
t = Thread(target=start_message_consumer)
t.daemon = True
t.start()
return app
def start_message_consumer():
credential = pika.credentials.PlainCredentials(xxxxx)
connection = pika.BlockingConnection(xxx, credentials=credential))
channel = connection.channel()
channel.queue_declare(queue='order')
def callback(ch, method, properties, body):
....Insert statement
channel.basic_consume(callback, queue='order', no_ack=True)
channel.start_consuming()
我需要锁还是有更好的方法(比如烧瓶扩展)来实现这一点
你有没有想出一个好的实施方案。。。我也在为同样的事情挣扎。@sptremblay是的,只要启动一个新的python进程来处理消息,如果需要与flask交互,只需从主导入应用程序导入flask实例。