こんにちは!
タダケン(@tadaken3)です。
定期実行といえば真っ先にcronが思い浮かびますが、scheduleはcronを代替するPythonライブラリです。cronにくらべ読みやすく、非常にシンプルです。
windowsでも動作しますし、cronが使えない環境なんかでちょっとした処理をPythonで実行できたりするので、便利です。
scheduleのコンセプト
ジョブのスケジュール実行は、標準モジュールを駆使して、実装することの可能ですが、scheduleを使うことでコードを非常にシンプルに保つことができます。
scheduleは「Python job scheduling for humans.」というコンセプトで作成されたライブラリです。直訳すると「人間のためのジョブスケジューラ」でしょうか。Rubyのclockworkにインスパイアされて作成されたようです。
けっこう便利のライブラリなのですが、Qiitaとかを見ていると、自前で実装しているケースがよく見られるので、scheduleの紹介記事を書いてみました。
scheduleを使ってみる
pipをつかってscheduleをインストール
$pip install schedule
scheduleライブラリの書き方は非常にシンプルです。以下のように処理時間を細かく指定して実行できます。
#coding:UTF-8 import schedule import time def job(): #ここにメインの処理を書く print("時間ですよ~") #10分毎にjobを実行 schedule.every(10).minutes.do(job) #毎時間ごとにjobを実行 schedule.every().hour.do(job) #AM10:30にjobを実行 schedule.every().day.at("10:30").do(job) #月曜日にjobを実行 schedule.every().monday.do(job) #水曜日の13:15にjobを実行 schedule.every().wednesday.at("13:15").do(job) while True: schedule.run_pending() time.sleep(1)
scheduleを使うと簡単にジョブスケジューラを実装することができます。windowns環境でcronが使えなかったりするときに、pythonで処理をスケジュール実行できるので便利です。
僕の場合、スクレイピングとか定期的に走らせたいときに重宝しています。
参考資料
読者登録をお願いします
本ブログではプログラミングについての記事を公開しています。よろしければ読者登録していただけると更新の励みになります。ぜひ一緒にプログラミングを学びましょう。