gpt4 book ai didi

python - 让程序定期重新启动

转载 作者:行者123 更新时间:2023-12-01 03:02:39 25 4
gpt4 key购买 nike

我目前正在开发一个项目,我希望每 10 分钟重新启动一次并重新运行一次。所以我创建了这个测试文件来看看它是否可以正常工作。

import sys
import os
import sched
import time

print("Hello")
s = sched.scheduler(time.time, time.sleep)

def restart_program(sc):
python = sys.executable
os.execl(python, python, * sys.argv)
s.enter(5, 1, restart_program, (sc,))

s.enter(5, 1, restart_program, (s,))
s.run()

所以我希望这个程序每 5 秒重新启动一次。在这种情况下,它将打印“Hello!”。但是当我运行它时,它只打印一次并且永远不会重新启动。

如何让它定期重新启动?

最佳答案

我不明白您到底在寻找什么,但以下是 3 种可能的情况。

1:如果程序正在运行(也许作为守护进程?)并且您想在一段时间间隔后继续调用特定方法,那么您可以使用 apscheduler .

from apscheduler.schedulers.blocking import BlockingScheduler

def do_something_every_5_second():
print "Do something"

scheduler = BlockingScheduler()
scheduler.add_job(do_something_every_5_second, 'interval', seconds=5)
scheduler.start()

2:您可以使用Cron它将在定义的时间执行你的 python 脚本。注意Cron不能设置少于1分钟。因此,例如,如果您想每 5 秒通过 Cron 运行一次脚本,那么您必须使用下面的 hack。

* * * * * /path/to/script
* * * * * sleep 5; /path/to/script
* * * * * sleep 10; /path/to/script
* * * * * sleep 15; /path/to/script
* * * * * sleep 20; /path/to/script
* * * * * sleep 25; /path/to/script
* * * * * sleep 30; /path/to/script
* * * * * sleep 35; /path/to/script
* * * * * sleep 40; /path/to/script
* * * * * sleep 45; /path/to/script
* * * * * sleep 50; /path/to/script
* * * * * sleep 55; /path/to/script

如果您使用的是 Windows,则可以使用 Windows 任务计划程序。请参阅Schedule Python Script - Windows 7

3:您可以使用带超时的循环( as suggested by Sneh )

关于python - 让程序定期重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com