python redis 连接池 和 消息 订阅发布
redis 发布订阅(PubSub),深入解读
https://blog.csdn.net/ldw201510803006/article/details/126093445
def connectredis(self):
try:
#redis的连接池
#rs = StrictRedis(host=self.host, port=6379, db=2 )
rs = redis.ConnectionPool.from_url(self.redis_url)
#rs = redis.ConnectionPool(host=self.host, port=6379, db=2, password='jack@2023')
conn = redis.Redis(connection_pool=rs, decode_responses=True)
return conn
except Exception as e:
log.info("redis conn error: {}".format(e))
return
def run(self):
rs_sub = self.rs.pubsub()
rs_sub.psubscribe(self.channel)
rs_sub.parse_response()
for data in rs_sub.listen():
from redis import StrictRedis
self.redis = StrictRedis.from_url('redis://:j99_abc6.2023@192.108.99.3:6379/2')
self.redis.publish(self.str_port, data)
for k, v in self.redis_conn.hscan_iter('overwrite', pattern, 100):
self.db = sqlite3.connect(db_path, isolation_level=None)
p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE)
wrapcache
import wrapcache
wrapcache.set('cache_time', value=start_time, timeout=CACHE_TIMEOUT)
wrapcache.set('read_tables', value=read_tables, timeout=CACHE_TIMEOUT)
wrapcache.set('router_tables', value=router_tables, timeout=CACHE_TIMEOUT)
wrapcache.get("read_tables")
wrapcache.get('router_tables')
任务模型
一个程序 不停地 给modbus 总线 发送读取指令
然后将读取的数据,
分别发给 两个地方。
一个是 正式的 服务器的数据库
一个是 测试用的服务器的数据库
采集的数据先保存在本地,然后另外一个分发的程序,将数据分发给 那两个地方。