鱼C论坛

 找回密码
 立即注册
查看: 2905|回复: 8

[已解决]求助:能否用一个代码检测另一个代码的运行状态

[复制链接]
发表于 2022-9-14 12:16:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 罗同学 于 2022-9-14 12:17 编辑

事情的经过是这样的,最近有好多重复且枯燥的审批工作,用selenimu写了一个自动审批的代码,但有时候会被莫名其妙的人提交的错误内容打断(且不好设置过滤),需要在办公室内网环境下审批,无法在家里电脑运行,下班挂机审批程序挂了之后就又要痛苦的在手机上手动批。
有没有这样一种可能,假设审批的代码叫做A.py,用另一个代码(B.py),去检测A的运行状态,如果譬如每15分钟检测一次,如果检测到A正常运行,就休眠15分钟,检测到A报错中止的话,就重新运行一次A.py
最佳答案
2022-9-14 12:48:42
个人认为这个需求可能无需另一个程序去监测,您可以考虑一下这样的结构是否可行
while True:
    try:
        <实际工作代码>
    except:
        pass
或者在启动您的脚本时外加一层循环,如(对 PowerShell )
while($true){<启动您程序的代码,如 python A.py>;sleep 1;}
这样即可在退出后无条件等待一秒重新启动。

不清楚您具体的用途,可能审批还是比较重要和关键的,相信您一定能很好的把控,还是多嘴提醒您一下做好测试避免错误导致不愿看到的后果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-14 12:48:42 | 显示全部楼层    本楼为最佳答案   
个人认为这个需求可能无需另一个程序去监测,您可以考虑一下这样的结构是否可行
while True:
    try:
        <实际工作代码>
    except:
        pass
或者在启动您的脚本时外加一层循环,如(对 PowerShell )
while($true){<启动您程序的代码,如 python A.py>;sleep 1;}
这样即可在退出后无条件等待一秒重新启动。

不清楚您具体的用途,可能审批还是比较重要和关键的,相信您一定能很好的把控,还是多嘴提醒您一下做好测试避免错误导致不愿看到的后果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-14 13:24:43 | 显示全部楼层
pm2 start main.py -x --interpreter python3

(最后这个参数python3是你的环境变量名 Linux下一般叫python3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-14 13:48:58 | 显示全部楼层
本帖最后由 z5560636 于 2022-9-14 13:50 编辑

你描述的情况不需要整的这么复制

直接用异常机制就可以了
try:
    pass
except:
    pass

当然,如果你决意那么做的话,也不是按照你描述的流程来的,  你只需要定时启动一个线程,检查你的处理任务的线程是否挂掉,挂掉的话,就重启处理任务的线程。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-14 14:14:35 | 显示全部楼层
try竟然可以放到while里面
刚写了个递归的版本:
def main():
    try:
        '工作代码'

    finally:
        main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-14 14:15:53 | 显示全部楼层
z5560636 发表于 2022-9-14 13:48
你描述的情况不需要整的这么复制

直接用异常机制就可以了

刚吃完饭想到了一个异常套递归的
def main():
    try:
        '工作代码'

    finally:
        main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-14 14:17:11 | 显示全部楼层
kogawananari 发表于 2022-9-14 13:24
pm2 start main.py -x --interpreter python3

(最后这个参数python3是你的环境变量名 Linux下一般叫pyt ...

大佬、你这我已经看不懂了
写了一个try...finally套用递归的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-14 15:57:38 | 显示全部楼层
罗同学 发表于 2022-9-14 14:17
大佬、你这我已经看不懂了
写了一个try...finally套用递归的

这就是一个管理后台任务的命令行工具  
一般是给网站挂了重启用  
最基本的也可以代替nohup命令

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-18 09:37:43 | 显示全部楼层
kogawananari 发表于 2022-9-14 15:57
这就是一个管理后台任务的命令行工具  
一般是给网站挂了重启用  
最基本的也可以代替nohup命令

小白表示respect
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 17:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表