使用回调在python 2应用程序之间进行通信的最佳方法是什么?

时间:2018-10-25 15:09:13

标签: callback communication python-2.x

我有2个独立的python 2应用程序在同一台linux(ubuntu)计算机上运行。

我想将消息从一个发送到另一个(双向),并在回调函数中接收这些消息。

有可能吗?你有什么例子可以参考吗?

谢谢

1 个答案:

答案 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消息传递库)。

一些相关读物: