1.创建一组整型随机数,每隔1s将随机生成的值储存在临时数组中
2.创建一个每10s函数:将第一次储存的10个值相加,作为报警临界值,之后每隔10s相加的值与报警临界值比较大小。比较后:相加值与报警临界值相等时,把相加值存入数据库;不等时,调用警报函数
按这个需求, 看实际跑的脚本, 可能合适的数据较少
修改随机值范围小一些,相等机会大一些
from threading import Thread
from time import sleep
from random import randint
from pubsub import pub
class Thread1(Thread):
def __init__(self):
"""Init Worker Thread Class."""
Thread.__init__(self)
print('采集线程Start ')
def run(self):
"""Run Worker Thread."""
while True:
pub.sendMessage('setval', status_val=randint(1,5))
sleep(1)
class Thread2(Thread):
def __init__(self):
Thread.__init__(self)
print('分析线程Start ')
self.data = []
self.stand = 0
pub.subscribe(self.change_status, 'setval')
def change_status(self, status_val):
self.data.append(status_val)
def wait_net_work(self):
# 等待数据
while len(self.data)<10:
sleep(1)
def run(self):
self.wait_net_work()
print(self.data)
self.stand = sum(self.data)
print("基准",self.data)
while True:
self.data = []
sleep(10)
self.wait_net_work()
if sum(self.data) == self.stand:
print("符合基准({}),调用保存数据代码".format(self.stand),self.data)
else:
print("不符合基准({}),调用警报函数代码".format(self.stand))
def test():
print('start test')
t1 = Thread1()
t1.start()
t2 = Thread2()
t2.start()
if __name__ == '__main__':
test()