Python schedule task

2021-04-08 15:55:04 +08:00
 badacook
在执行日常管理任务时,有时想实现一个任务脚本,只正确运行一次,就终止,
否则就循环执行一定次数,或者隔一定时间间隔重启任务,直到被正确执行一次

如在 windows 下,设定一个任务计划,就像应 do {} until () 循环一样,
do 表达式 是执行 python 脚本的语句,until 的终止条件是 python 脚本的 exit code 为 0
不知道这种调用能否实现,还望大家指点一下 或者有类似的解决方式,谢谢了
1902 次点击
所在节点    Python
8 条回复
tisswb
2021-04-08 15:59:08 +08:00
windows 有计划任务这个可以实现,不过有时候得配合一下脚本
junnplus
2021-04-08 16:02:22 +08:00
如果是简单的场景,加一个 retry 装饰器就可以
j0hnj
2021-04-08 16:04:45 +08:00
est
2021-04-08 16:09:54 +08:00
你都这样问了,那么保险起见,建议 bash 实现。
clino
2021-04-08 16:39:18 +08:00
badacook
2021-04-08 19:26:52 +08:00
@clino 看了一下 你的解决方法好像比较接近,思路大概就是在主线程里捕获执行脚本的线程句柄 handle,传入类似 GetExitCodeThread()函数,有点儿回调的意思,不知道这种理解对不对
HelloViper
2021-04-09 11:45:14 +08:00
from tenacity import retry, stop_after_attempt
clino
2021-04-09 16:28:11 +08:00
@badacook 没有这么复杂,os.system() 就会等子进程结束才会返回的。
听你这么说好像和你的需求不一致。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX