求助:能否用一个代码检测另一个代码的运行状态
本帖最后由 罗同学 于 2022-9-14 12:17 编辑事情的经过是这样的,最近有好多重复且枯燥的审批工作,用selenimu写了一个自动审批的代码,但有时候会被莫名其妙的人提交的错误内容打断(且不好设置过滤),需要在办公室内网环境下审批,无法在家里电脑运行,下班挂机审批程序挂了之后就又要痛苦的在手机上手动批。
有没有这样一种可能,假设审批的代码叫做A.py,用另一个代码(B.py),去检测A的运行状态,如果譬如每15分钟检测一次,如果检测到A正常运行,就休眠15分钟,检测到A报错中止的话,就重新运行一次A.py 个人认为这个需求可能无需另一个程序去监测,您可以考虑一下这样的结构是否可行
while True:
try:
<实际工作代码>
except:
pass
或者在启动您的脚本时外加一层循环,如(对 PowerShell )
while($true){<启动您程序的代码,如 python A.py>;sleep 1;}
这样即可在退出后无条件等待一秒重新启动。
不清楚您具体的用途,可能审批还是比较重要和关键的,相信您一定能很好的把控,还是多嘴提醒您一下做好测试避免错误导致不愿看到的后果 pm2 start main.py -x --interpreter python3
(最后这个参数python3是你的环境变量名 Linux下一般叫python3) 本帖最后由 z5560636 于 2022-9-14 13:50 编辑
你描述的情况不需要整的这么复制
直接用异常机制就可以了
try:
pass
except:
pass
当然,如果你决意那么做的话,也不是按照你描述的流程来的,你只需要定时启动一个线程,检查你的处理任务的线程是否挂掉,挂掉的话,就重启处理任务的线程。 try竟然可以放到while里面{:10_266:}
刚写了个递归的版本:
def main():
try:
'工作代码'
finally:
main() z5560636 发表于 2022-9-14 13:48
你描述的情况不需要整的这么复制
直接用异常机制就可以了
刚吃完饭想到了一个异常套递归的{:10_250:}
def main():
try:
'工作代码'
finally:
main() kogawananari 发表于 2022-9-14 13:24
pm2 start main.py -x --interpreter python3
(最后这个参数python3是你的环境变量名 Linux下一般叫pyt ...
大佬、你这我已经看不懂了{:10_266:}
写了一个try...finally套用递归的 罗同学 发表于 2022-9-14 14:17
大佬、你这我已经看不懂了
写了一个try...finally套用递归的
这就是一个管理后台任务的命令行工具
一般是给网站挂了重启用
最基本的也可以代替nohup命令
{:10_327:} kogawananari 发表于 2022-9-14 15:57
这就是一个管理后台任务的命令行工具
一般是给网站挂了重启用
最基本的也可以代替nohup命令
{:10_303:}小白表示respect
页:
[1]