Redis订阅发布消息实例
Redis订阅和发布消息首先,发布端启动 redis-server.exe 服务发布端 pub.py#!/usr/bin/env python# -*- coding: utf-8 -*-'''Created on 2015-9-9@author: sxli'''import redisimport sysclassPublishChannel(object):...
Redis订阅和发布消息
首先,发布端启动 redis-server.exe 服务
发布端 pub.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on 2015-9-9
@author: sxli
'''
import redis
import sys
class PublishChannel(object):
#kword = u"桌面".encode('gb2312')
def send_pybot(self,msg):
message=["msg1","msg2","msg3"]
'''
msg1:对参与者端共享app进行外窗口操作
msg2:对参与者端共享app进行内窗口操作
msg3:参与者端托盘断开连接重连操作
'''
pool=redis.ConnectionPool(host='192.168.3.58',port=6379,db=0)
r = redis.StrictRedis(connection_pool=pool)
# input = raw_input("publish:")
if msg in message:
r.publish('spub', msg)
if input == 'over':
print '停止发布'
# break;
if __name__ == "__main__":
Do = PublishChannel()
Do.send_pybot(sys.argv[1])
print "finish msg to Channel !"
订阅端 sub.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on 2017-12-18
@author: sxli
'''
import redis
import win32api
import os
pool=redis.ConnectionPool(host='192.168.3.58',port=6379,db=0)
#db=0,选择操作0号数据库 redis默认有16个数据库 conf可以配置
r = redis.StrictRedis(connection_pool=pool)
p = r.pubsub()
p.subscribe('spub')
message=["msg1","msg2","msg3"]
for item in p.listen():
print item
if item['type'] == 'message':
data = item['data']
# print data
if data == message[0]:
print u"对参与者端共享app进行外窗口操作"
os.system("C:\JHAppTestAutomation\JHCoDesign-5.0\JHApp-4.0.0\bat\GotoTestCase1.bat")
print u"msg1执行完成"
elif data == message[1]:
print u"对参与者端的共享app进行内窗口操作"
#os.system("C:\\JHAppTestAutomation\\JHCoDesign-5.0\\bat\\GotoTestCase2.bat %s " % (x))
elif data == message[2]:
print u"对参与者端的共享app进行内窗口操作"
#os.system("C:\\JHAppTestAutomation\\JHCoDesign-5.0\\bat\\GotoTestCase2.bat %s " % (x))
elif data == message[3]:
print u"注销用户!"
#os.system("C:\\JHAppTestAutomation\\JHCoDesign-5.0\\bat\\GotoTestCase2.bat %s " % (x))
if item['data']=='over':
break;
p.unsubscribe('spub')
print '取消订阅'
可通过redis-cli.exe进行测试;
cmd 打开redis-cli.exe
查看使用方法:
“redis-cli.exe” –help
连接至redis服务端:
“redis-cli.exe” -h localhost -p (默认6379)
订阅一个频道:
192.168.3.58:6379> subscribe spub
Reading messages… (press Ctrl-C to quit)
1) “subscribe”
2) “spub”
3) (integer) 1
发布一个消息:
192.168.3.58:6379> publish spub “hello!”
(integer) 1
最后跑通后测试:
订阅端:python sub.py
{‘pattern’: None, ‘type’: ‘subscribe’, ‘channel’: ‘spub’, ‘data’: 1L}
发布端 执行脚本:python pub.py msg1
订阅端:python sub.py
{‘pattern’: None, ‘type’: ‘subscribe’, ‘channel’: ‘spub’, ‘data’: 1L}
对参与者端共享app进行外窗口操作
msg1执行完成
相关连接:
https://blog.csdn.net/kwsy2008/article/details/48372079
https://blog.csdn.net/dgatiger/article/details/50436014
http://redisbook.readthedocs.io/en/latest/feature/pubsub.html
更多推荐
所有评论(0)