为什么python调度器只运行一次?
问题描述:
我使用python调度器以3秒的间隔运行一个进程。 但输出(只是一个你好的世界)只运行一次。我在我的django webserver启动后运行这个函数,所以这个脚本必须在后台运行。为什么python调度器只运行一次?
问题1:为什么我的脚本只运行一次,一个不是每一秒(延迟值为3)
问题2:这是一个很好的做法,在后台或运行一个脚本间隔?我解释说,脚本需要不超过3秒钟才能执行。
import sched, time
def startProcess(self):
print("START PROCESS")
print(time.time())
s = sched.scheduler(time.time, time.sleep)
s.enter(3,1, self.initProcessHelloWorld)
s.run()
print(time.time())
print("END PROCESS")
答
问题的答案1:因为你(我想)只能调用startProcess
一旦任务只运行一次。 sched
设置了一次任务,但只有一次initProcessHelloWorld
。你需要这样做N
次,如果你想N
调用initProcessHelloWorld
。
对问题2的回答:这是个好主意,但最好制作一个daemon
。在这里你是一个daemon package和example of a daemon
感谢您的快速回复,关于Deamon包的其他问题,我无法找到有关操作系统的规范,所以..它也运行在Windows上吗?因为,我只知道Deamons构成了Unix世界。 –
@ michael-mammut对不起,但我不...我只在Unix系统上试过。 PS:如果我的回答对您有帮助,请将其标记为“答案”! –