可能性の重複:バックグラウンドタスクとして定期的に実行する機能をスケジュールするための最も神託の方法だろう何
Suggestions for a Cron like scheduler in Python?実行Pythonで特定の間隔でタスク
? hereのアイディアがいくつかありますが、それらはすべて私にとっては醜いようです。そして不完全です。
Java Timerクラスには非常に完全な解決策があります。誰もが同様のpythonクラスを知っていますか?
可能性の重複:バックグラウンドタスクとして定期的に実行する機能をスケジュールするための最も神託の方法だろう何
Suggestions for a Cron like scheduler in Python?実行Pythonで特定の間隔でタスク
? hereのアイディアがいくつかありますが、それらはすべて私にとっては醜いようです。そして不完全です。
Java Timerクラスには非常に完全な解決策があります。誰もが同様のpythonクラスを知っていますか?
必要な機能を備えた便利なイベントスケジューラがあります。ここではドキュメントへのリンクです:
のPythonでイベントを作成しますスレッドモジュールにはTimerクラスがありますが、これはワンショットタイマーなので、リンクを見ているうちに何かをやるほうがいいでしょう。 http://code.activestate.com/recipes/65222/
あなたはなぜそれが醜いと思いますか、一度あなたがそのようなクラスの使用法を書いたら、Javaのように簡単になります。
などです。あなたが直接使用できるwx.Timerを持っているよりもwxPythonです
質問に直接答えていません。 Linux/Unixオペレーティングシステムで
そうするいくつかの方法がありますし、通常私は(OS X上のようなlaunchd)似たようなことはcronに追加したり、その後に
レスポンスを正常に私のプログラム/スクリプトを記述し、ここから質問が始まります。
標準的なPythonのスケジュールモジュールを使用してください - standard library documentationは、いくつかの素晴らしいソリューションを記述しています。
+1:cronを使用してください。 –
"in Python"ソリューションを使用している場合は、スクリプトを実行し続けることを心配する必要があります(再起動、クラッシュなどの後)、cronはこれを不要にし、非常に簡単で信頼性があります。 – dbr
multiprocessingモジュールを試してください。
from multiprocessing import Process
import time
def doWork():
while True:
print "working...."
time.sleep(10)
if __name__ == "__main__":
p = Process(target=doWork)
p.start()
while True:
time.sleep(60)
"プログラマーの多くは、命令型プログラミングでバグが発生しやすいため、マルチスレッドコードを避けようとしています。" 少し話題はありますが、これはマルチスレッドを避けるための良い理由ではないと思います。鍵は、それを正しく実行し、メモリーの一貫性とロックの意味を完全に理解することです。 私は、この種のプログラミングの経験が限られているプログラマーは、そのような技術をプロダクションコードで使用する前に、その学習と実践に大きく投資することに同意します。 マルチコアプログラミングの時代にそれを避けることは、あなたのリソースを十分に活用したい場合、実際には実行可能な選択肢ではありません。 – Scruffers
@Scruffersマルチスレッドは信じられないほど正しい(難しい)ことができます(http://stackoverflow.com/questions/3830347/can-a-multi-threaded-program-ever-be-deterministic ))、スレッド以外の複数のコアを使用する他の多くの方法があります。 – dbr