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 connexcept Exception as e:log.info("redis conn error: {}".format(e))returndef 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 wrapcachewrapcache.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 总线 发送读取指令
然后将读取的数据,
分别发给 两个地方。
一个是 正式的 服务器的数据库
一个是 测试用的服务器的数据库
采集的数据先保存在本地,然后另外一个分发的程序,将数据分发给 那两个地方。