Python で Cron のようなスケジューラを作成するにはどうすればいいですか? 質問する

Python で Cron のようなスケジューラを作成するにはどうすればいいですか? 質問する

at機能を提供し、気に入っているPython のライブラリを探していますcron

私は、ボックスにインストールされているツールに頼るのではなく、純粋な 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.

cron 時間式の構文はそれほど重要ではありませんが、このような柔軟性を備えたものが欲しいです。

すぐに使えるものがない場合は、このようなものを作るための構成要素に関する提案があれば、ぜひいただければ幸いです。

編集私はプロセスの起動には興味がありません。Python で記述された「ジョブ」、つまり Python 関数だけに興味があります。必然的に、これは別のスレッドになると思いますが、別のプロセスではありません。

この目的のために、私は cron 時間式の表現力を Python で実現したいと考えています。

Cron は何年も前から存在してますが、私はできるだけ移植性を高めようとしています。その存在に頼ることはできません。

ベストアンサー1

軽量なものをお探しの場合はスケジュール:

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

開示:私はそのライブラリの作者です。

おすすめ記事