Python schedule task

badacook 1月前 20

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

如在 windows 下,设定一个任务计划,就像应 do {} until () 循环一样,
do 表达式 是执行 python 脚本的语句,until 的终止条件是 python 脚本的 exit code 为 0
不知道这种调用能否实现,还望大家指点一下 或者有类似的解决方式,谢谢了
最新回复 (8)
  • tisswb 24天前
    引用 2
    windows 有计划任务这个可以实现,不过有时候得配合一下脚本
  • junnplus 24天前
    引用 3
    如果是简单的场景,加一个 retry 装饰器就可以
  • j0hnj 24天前
    引用 4
    https://github.com/jd/tenacity
    https://github.com/litl/backoff
  • est 24天前
    引用 5
    你都这样问了,那么保险起见,建议 bash 实现。
  • clino 24天前
    引用 6
    https://gist.github.com/zhangchunlin/8ba84924e80ef2acdb8ee4ef5e67faff
  • 楼主 badacook 24天前
    引用 7
    @clino 看了一下 你的解决方法好像比较接近,思路大概就是在主线程里捕获执行脚本的线程句柄 handle,传入类似 GetExitCodeThread()函数,有点儿回调的意思,不知道这种理解对不对
  • HelloViper 24天前
    引用 8
    from tenacity import retry, stop_after_attempt
  • clino 24天前
    引用 9
    @badacook 没有这么复杂,os.system() 就会等子进程结束才会返回的。
    听你这么说好像和你的需求不一致。
  • 游客
    10
返回