scheduleライブラリを使ってPythonスクリプトを定期実行しよう
こんにちは!
タダケン(@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で処理をスケジュール実行できるので便利です。
僕の場合、スクレイピングとか定期的に走らせたいときに重宝しています。
参考資料
最後に少しお願いです。
ここまで読んでいただきありがとうございます。
最後にあなたに少しお願いがあります。この記事が少しでも役に立った、気付きがあったという方は、ぜひこの記事をTwitterにシェアしていただきたいです。
はてなブックマークをしていただく形でも大丈夫です。コメント付きだと、もっと嬉しいです。
ぜひ、よろしくお願いいたします。
↓Twitterもやっています。 twitter.com
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る