2017-08-11 71 views
0

我使用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") 

回答

0

问题的答案1:因为你(我想)只能调用startProcess一旦任务只运行一次。 sched设置了一次任务,但只有一次initProcessHelloWorld。你需要这样做N次,如果你想N调用initProcessHelloWorld

对问题2的回答:这是个好主意,但最好制作一个daemon。在这里你是一个daemon packageexample of a daemon

+0

感谢您的快速回复,关于Deamon包的其他问题,我无法找到有关操作系统的规范,所以..它也运行在Windows上吗?因为,我只知道Deamons构成了Unix世界。 –

+0

@ michael-mammut对不起,但我不...我只在Unix系统上试过。 PS:如果我的回答对您有帮助,请将其标记为“答案”! –

相关问题