|
本帖最后由 mygiss 于 2024-1-20 14:07 编辑
系统win2022 server,管理员登陆,已完全安装python3.12.1, 开dos窗口运行python3程序,代码如下:
import datetime,time
def getNowstr():
gg_now = datetime.datetime.now()
return datetime.datetime.strftime(gg_now, '%Y%m%d %H:%M:%S')
if __name__ == "__main__":
while True:
try:
gmin = datetime.datetime.now().minute
print(f"{getNowstr()}:gmin={gmin} loop ")
if gmin % 10 == 8:
print(f"{getNowstr()}:MIN=8")
print(f"{getNowstr()}:Before time.sleep")
time.sleep(60)
print(f"{getNowstr()}:After time.sleep")
except Exception as e:
print(f"An error occurred: {e}")
理想状态应该一直打印运行,然而,会不定时地在time.sleep(60)这句发生假死,错误也捕捉不到,就是卡死在time.sleep(60)这儿了,什么时候假死不一定,可能没几行,也可能大半天甚至几天,但是一定会假死,例如输出是:
python ttest.py
20240120 09:46:31:gmin=46 loop
20240120 09:46:31:Before time.sleep
刚开始运行就假死了,按一下回车键还能继续运行:
20240120 09:47:31:After time.sleep
20240120 09:51:25:gmin=51 loop
20240120 09:51:25:Before time.sleep
20240120 09:52:25:After time.sleep
20240120 09:52:25:gmin=52 loop
20240120 09:52:25:Before time.sleep
20240120 09:53:25:After time.sleep
20240120 09:53:25:gmin=53 loop
20240120 09:53:25:Before time.sleep
20240120 09:54:25:After time.sleep
20240120 09:54:25:gmin=54 loop
然后再什么时候假死不知道了。我要的是非常稳定的定时操作,这样假死程序就阻塞不动了。
通过网络查找,试过很多方案的代码,如:
chatGPT给出Python time.sleep()假死(挂起)的解决办法 https://blog.csdn.net/xiaoyw71/article/details/130471509
python中sleep引起的程序假死现象 https://zhuanlan.zhihu.com/p/358987957
还有很多办法,都试过,无一例外都会不定时假死,晕了~
不知道高手有没有遇到这样的情况,怎么解决?我已经没招了
在win2008、python2.7运行,几乎没有time.sleep假死的情况,所以程序一跑可以几个月不用管。
|
评分
-
1
查看全部评分
-
|