[英]Python message to other applications
現狀:
我有兩個python應用程序(前端服務器和數據收集器,它們之間有一個數據庫)。
當前使用redis作為db及其發布/訂閱協議來在有新數據可用時通知前端。
但是我是否可以使用其他數據庫(不想只將pub / sub的redis保留在系統上)。
如果數據收集器已將新數據交易到數據庫(沒有使用像beantalkd或redis這樣的外部消息隊列),是否有任何簡單的替代方法可以通知我的前端?
ZeroMQ是一個不錯的選擇。 它具有良好的Python綁定,並且使同一台機器上的進程之間和不同機器上的進程之間的通信幾乎相同。
首先閱讀指南:http: //zguide.zeromq.org/page : all
正如我在評論中提到的那樣,如果您想要通過網絡傳輸的內容,則除了設置Web服務(燒瓶應用程序?)或編寫自己的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回調時,它們也可以成為異步程序的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.