2017-08-11 67 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:如果我的回答對您有幫助,請將其標記爲「答案」! –

相關問題