質問: pythonでcronのようなスケジューラを取得する方法 私はatとcronのような機能を提供するpythonのライブラリを探しています。箱にインストールされているツールに頼るのではなく、純粋なpythonソリューションを手に入れたいです。このようにして私はcronなしでマシン上で走る。cronになじみのない人のために:あなたは次のような表現に基づいてタスクをスケジュールすることができます: 0 2 * * 7 /usr/bin/run-backup # run the backups at 0200 on every sunday 0 9-17/2 * * 1-5 /usr/bin/purge-temps # run the purge temps command, every 2 hours between 9am and 5pm on mondays to fridays. クーロン時間式の構文はそれほど重要ではありませんが、この種の柔軟性を備えたものが欲しいのです。箱から出してすぐに使えるようなことがない場合は、このようなものを作成するためのビルディングブロックに対する提案があればありがたく思います。編集プロセスの起動には興味がありません。pythonで書かれた「ジョブ」 - python関数だけです。必要に応じて、これは別のスレッドになると思いますが、別のプロセスにはありません。この目的のために、私はcron時間式の表現力を探していますが、それはpythonです。cronは何年も前から存在していますが、できるだけ移植性があるようにしています。私はその存在に頼ることはできません。
回答: もう1つの簡単な解決策は次のとおりです。from aqcron import at from time import sleep from datetime import datetime # event scheduling event_1 = at( second=5 ) event_2 = at( second=[0,20,40] ) while true: now = datetime.now() # event check if now in event_1: print "event_1" if now in event_2: print "event_2" sleep(1) そしてクラスaqcronです。# aqcron.py class at(object): def __init__(self, year=none, month=none, day=none, weekday=none, hour=none, minute=none, second=none): loc = locals() loc.pop("self") self.at = dict((k, v) for k, v in loc.iteritems() if v != none) def __contains__(self, now): for k in self.at.keys(): try: if not getattr(now, k) in self.at[k]: return false except typeerror: if self.at[k] != getattr(now, k): return false return true