py_w 0000000000000 2022-03-28 12:28 采纳率: 89.5%
浏览 47
已结题

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

1.创建一组整型随机数,每隔1s将随机生成的值储存在临时数组中
2.创建一个每10s函数:将第一次储存的10个值相加,作为报警临界值,之后每隔10s相加的值与报警临界值比较大小。比较后:相加值与报警临界值相等时,把相加值存入数据库;不等时,调用警报函数

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-03-28 14:55
    关注

    按这个需求, 看实际跑的脚本, 可能合适的数据较少
    修改随机值范围小一些,相等机会大一些

    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()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同