2017-08-11 8 views
0

私はpythonスケジューラを使って3秒の間隔でprocesを実行します。 しかし、出力(ちょうどこんにちは世界)は1回だけ実行されます。私はこの機能を私のdjango Webサーバの起動後に実行するので、このスクリプトはバックグラウンドで実行する必要があります。なぜPythonスケジューラが1回だけ実行されるのですか?

質問1:私のスクリプトは一つだけ実行する理由はなく、各秒(遅延の値は3)

質問2:これはバックグラウンドでまたはでスクリプトを実行することをお勧めします間隔?私は、スクリプトを実行するのに3秒以上かかる必要はないことを明示します。あなたは(私が思う)一度だけstartProcessを呼び出すため、タスクを一度だけ実行されます。質問1へ

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

回答。 schedタスクは1回だけ実行されますが、initProcessHelloWorldが1回だけです。 NinitProcessHelloWorldに電話する場合は、N回する必要があります。

質問2への回答:いい考えですが、daemonを作る方が良いです。ここではdaemon packageexample of a daemon

+0

私はOSについての仕様を見つけることができないので、あなたの速い返信、Deamonパッケージに関する他の質問ありがとうございます..それもWindows上で実行されますか?なぜなら、私はDeamonsがUnixの世界を形成していることを知っているからです。 –

+0

@ michael-mammut申し訳ありませんが、私はUnix Systemsで試してみました。 PS:私の答えがあなたを助けてくれたら、それを「答え」と記してください! –

関連する問題