发送给其他应用程序的Python消息

2024-06-01 11:15:53 发布

您现在位置:Python中文网/ 问答频道 /正文

现状:

我有两个python应用程序(前端服务器和数据收集器,它们之间有一个数据库)。你知道吗

当前使用redis作为数据库及其发布/订阅协议,在有新数据可用时通知前端。你知道吗

但是我可能想使用另一个数据库(并且不想仅仅为了发布/订阅而在系统上保留redis)。你知道吗

如果数据收集器已将新数据处理到数据库(不使用beanstalkd或redis等外部消息队列),是否有简单的替代方法来通知我的前端?你知道吗


Tags: 数据方法服务器redis数据库应用程序消息协议
2条回答

正如我在评论中提到的,如果你想要的东西是通过网络,那么除了设置一个web服务(flask app?),或者编写自己的INET套接字服务器—操作系统中没有内置任何东西可以在机器之间进行通信。Beanstalk在Python中有一个非常简单的API,我已经非常成功地将它用于这类事情。你知道吗

try:
    beanstalk = beanstalkc.Connection(host="my.host.com")
    beanstalk.watch("update_queue")
except:
    print "Error connecting to beanstalk"

while True:
    job = beanstalk.reserve()
    do_something_with_job(job)

如果您只打算在同一台机器上工作,那么请阅读linux IPC。进程之间的套接字连接速度非常快,开销几乎为零。当您利用epoll回调时,它们也可以是异步程序的一部分。你知道吗

ZeroMQ是一个很好的选择。它有很好的Python绑定,并且使同一台机器上的进程和不同机器上的进程之间的通信看起来几乎相同。你知道吗

从阅读指南开始:http://zguide.zeromq.org/page:all

相关问题 更多 >