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 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析