每小时使用批处理文件重新加载 python 脚本

Posted

技术标签:

【中文标题】每小时使用批处理文件重新加载 python 脚本【英文标题】:Reloading a python script using a batch file every hour 【发布时间】:2021-12-17 02:30:14 【问题描述】:

大家好!脚本有时会关闭。滴。我用以下批处理文件解决了这个问题:

@echo off
:start
python script.py %*
goto start

请告诉我如何每小时重新加载一次脚本? 我已经尝试了给定的命令:

@echo off
:start
python script.py %*
timeout /t 3600
taskkill /im cmd.exe /f ; or python.exe ; or py.exe
goto start

不幸的是它没有出来:(

【问题讨论】:

如果您想按计划运行某些内容,请使用 Windows 任务计划程序。您当前的想法很疯狂,因为它无限运行批处理文件。但是,从技术上讲,如果您要强制关闭,(应该很少这样做)cmd.exe,无论如何您都会永久结束该批处理文件。 她为什​​么疯了?我需要脚本 24/7 全天候工作。脚本每 2-3 小时崩溃一次,我无法每周 7 天、每天 24 小时跟踪它。我所实施的解决了这个问题。 或者可以使用threading.Timer(3600, function)在Python中每小时运行一次函数。 或者只是在 linux 上使用 linux systemd 计时器而不是 windows 对不起,如果我写错了,我不会说英语:) 【参考方案1】:

试试:

@echo off

:start
cls

python script.py %*
timeout /t 3600 /nobreak
tasklist | find /i "python.exe" >NUL && taskkill /f /im "python.exe" || taskkill /f /im "py.exe"

goto start

脚本将检查“python.exe”是否正在运行(在这种情况下它将被终止),否则脚本将终止“py.exe”。 /nobreak 属性确保超时将继续运行,即使您按下一个键,并且 taskkill 上的 /t 属性会杀死进程及其所有子进程

【讨论】:

以上是关于每小时使用批处理文件重新加载 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中的 if 语句上重新加载主脚本

Python C API - 重新加载模块

Heroku 每 24 小时更新一次其中的文件

Python重新加载文件

将每小时数据重新采样为每日数据并在 python 中的特定列上求和

如何将实时stdout流拆分成几个文件?