python redis 订阅模式 实现Django uwsgi 多进程下通信

redis 订阅 飞机票 参考

订阅者

import redis
conn = redis.Redis(host="localhost")
pub =  conn.pubsub()
pub.subscribe('id') #id可以理解为频道,发送消息时需要和此id关联
while True:
	print(pub.parse_response())  #pub.parse_response()接受消息

发送者

import redis
conn = redis.Redis(host="localhost")
conn.publish('id', '要发送的消息')  #id 为单独的频道

应用到django中,实现uwsgi 多进程通信

订阅者比较重要 发送者根据自己的业务自行添加

# 订阅者
import redis
import threading
def sub():
    conn = redis.Redis(host="localhost").pubsub()
    conn.subscribe('id')
    while True:
        print(conn.parse_response())
        """逻辑代码"""

t = threading.Thread(target=sub)  #一般把此代码放在 apps.py ready方法中 在django启动时自动启动 也可以放在 url 等其他地方,这样无论uwsgi开启多少个进程,都会有订阅者
t.daemon = True  #设置为守护线程 因为django 在启动时会执行检查代码和启动程序,当主进程杀死时,该线程结束
t.start()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值