我有2个独立的python 2应用程序在同一台linux(ubuntu)计算机上运行。
我想将消息从一个发送到另一个(双向),并在回调函数中接收这些消息。
有可能吗?你有什么例子可以参考吗?
谢谢
答案 0 :(得分:0)
在python应用之间进行通讯有不同的选项。
一个简单的方法就是使用基于HTTP的API。每个应用程序都会公开一个特定的端口,并且通过交换HTTP请求进行通信。 有几个框架可让您分几个步骤进行构建。例如,使用Bottle:
在app1中:
from bottle import route, run, request
@route('/action_1', method='POST')
def action_1_handler():
data = request.json
print(str(data))
# Do something with data
return {'success': True, 'data': {'some_data': 1}}
run(host='localhost', port=8080)
在app2中:
import requests
r = requests.post("http://localhost:8080/action_1", json={'v1': 123, 'v2': 'foo'})
print r.status_code
# 200
data = r.json()
# {u'data': {u'some_data': 1}, u'success': True}
请注意,如果在收到HTTP请求之后在app1上执行的操作花费大量时间,则可能导致超时错误。在这种情况下,请考虑在另一个线程中运行该操作或使用其他通信协议(例如套接字,ZeroMQ消息传递库)。
一些相关读物: