后台小程序开发的全方位指南
617
2022-10-02
python-redistest
# !/usr/bin/python3.4# -*- coding: utf-8 -*-import redisimport time# 这里用来读取ipdef getips(): ip = [] # 读取ip file = open("../ip/ip.txt") ips = file.readlines() # 将ip写入数组并加上时间戳 for item in ips: # 标记时间戳 markedtime = int(time.time()) ip.append(item.strip() + "*" + str(markedtime)) return ip# 传入带有时间戳的ip数组def test(ips): # 在这里打开redis r = redis.Redis(host='127.0.0.1', port=6379, db=0) # 删除旧的列队 r.delete("mylist") # 将ip添加进消息列队 for item in ips: r.lpush("mylist", item) # 逐个取出和存储 # 因为要一直取所以用while while True: # 逐个取出 temppop = r.rpop("mylist") # 去除*号后面的东西 splitstar = temppop.decode('utf-8', 'ignore').split("*") # 得到间隔大于3秒的ip # 当前时间 nowtime = int(time.time()) # 如果时间间隔大于3就取出来使用 if nowtime - int(splitstar[1]) >= 3: ip = splitstar[0] print("取出ip:" + str(ip)) else: # 如果间隔小于3秒则重新写入列队 r.lpush("mylist", temppop) # 跳过这次循环 continue # 这里写解析函数 # 如果消费了这个ip就逐个写入 # ...... # 逐个写入 # 标记时间戳 markedtime = int(time.time()) # 构造格式 temppush = str(ip) + "*" + str(markedtime) # 写入列队 r.lpush("mylist", temppush) # 不知道怎么一个一个的返回 input('---' * 10) # return ipif __name__ == '__main__': a = test(getips()) print(a)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~