python redis 訂閱發佈

from redis.connection import Connection
import  redis
class Redis_helper(object):
    def __init__(self):
        self.__conn = redis.Redis(host="10.36.3.74",port=6379)  #創立鏈接
    def pub(self,msg,chan):
        self.__conn.publish(chan,msg)     #從哪一個頻道發佈消息
    def sub(self,chan):
        pub = self.__conn.pubsub()        #打開功能
        pub.subscribe(chan)               #訂閱頻道
        pub.parse_response()              #接收消息,block=(True|False),默認True阻塞
        return pub
    def redisadd(self,*args):          
        self.__conn.set(*args)            #接收key value EX time
    def redislistadd(self,*args):
        self.__conn.lpush(*args)          #接收key  value_list
    redis

發佈:
from test import Redis_helperit

def redisrelease(msg):
    pub = Redis_helper()
    pub.pub(msg,'81')io

for i in range(11,20):
    data = {'host':"10.36.3.%d"% i,"問題":"cpu is more than 90%"}   #客戶端手機的數據,這只是個例子
    redisrelease(data)                    #發佈消息class

訂閱:
import time
from  test import Redis_helpertest

def redissub():
    sub = Redis_helper()
    pub=sub.sub('81')                     #訂閱與發佈這同樣的頻道
    return  pub.parse_response()import

while True:
    A = redissub()                        #實例化接收訂閱的消息結果
    B = Redis_helper()
    date_now = time.strftime("%Y-%m-%d %H:%M:%S")
    C = eval(A[-1])
    C["update"]=date_now
    B.redislistadd("host",C)               #添加時間戳並不收到的消息存儲Redis   object

相關文章
相關標籤/搜索