python根据自定义条件,筛选数据存入数据库

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()