Python if-else时间睡眠冻结另一个else函数

Python if-else时间睡眠冻结另一个else函数,python,if-statement,Python,If Statement,我有python脚本来检查时间是否匹配,然后运行特定的函数 while True: jam = 60*(60-datetime.datetime.now().minute) if jam == 3600: url = 'http://192.168.1.5/postdata.php' myobj = {'somekey': 'test'} x = requests.post(url, data = myobj) p

我有python脚本来检查时间是否匹配,然后运行特定的函数

while True:
    jam = 60*(60-datetime.datetime.now().minute)
    if jam == 3600:
        url = 'http://192.168.1.5/postdata.php'
        myobj = {'somekey': 'test'}

        x = requests.post(url, data = myobj)
        print("Data Hourly Inserted")
        time.sleep(3600)
    else:
        print("Show every 5 seconds")
        time.sleep(5)
正如您看到的上述代码,有两个条件:

  • 打印(“每5秒显示一次”)
    将每5秒运行一次
  • 打印(“每小时插入数据”)
    将每小时运行一次
  • 如果jam==3600
    ,函数将正确运行,但文本“每隔5秒显示一次”将不再显示


    知道如何解决吗?

    保存数据在变量中发布的时间。每当当前小时发生变化时,请再次发布

    last_hour = None
    while True:
        if datetime.datetime.now().hour != last_hour
            url = 'http://192.168.1.5/postdata.php'
            myobj = {'somekey': 'test'}
    
            x = requests.post(url, data = myobj)
            print("Data Hourly Inserted")
            last_hour = datetime.datetime.now().hour
        print("Show every 5 seconds")
        time.sleep(5)
    

    在它每小时打印一次插入的
    数据之后
    会在重复循环之前休眠一小时。那么,你知道如何让它一直运行吗?简单地删除
    时间。休眠(3600)
    ?或者在if-else块之后放置
    time.sleep(5)
    ?顺便问一下,您的
    else
    块是否仅用于调试?我认为您应该解释您需要做什么,而不是要求我们改进/调试您的解决方案。您是否尝试每小时执行一个操作,并每5秒并行执行另一个操作?
    jam
    测试是否与
    if datetime.datetime.now().minute==0:
    相同?