【10行で実現】PythonのAPSchedulerで処理を定期実行する手順

 

★悩み★
・Pythonで作成した関数を20分間隔で処理できないのかな?
・Pythonで作成した関数を毎日20時に実行する方法を知りたい。
・PythonのAPSchedulerライブラリで処理を定期実行する手順を知りたい。


こういった「悩み」に答えます。

 

★本記事の内容★
① PythonのAPSchedulerで処理を定期実行するための準備を解説
② PythonのAPSchedulerで処理を定期実行する手順を解説



これからご紹介する「【10行で実現】PythonのAPSchedulerで処理を定期実行する手順」を実践したことで、筆者は15分以内で「APSchedulerライブラリを使ってPythonの処理を定期実行」できました。

記事の前半では「PythonのAPSchedulerで処理を定期実行するための準備」を解説します。記事の後半では「PythonのAPSchedulerで処理を定期実行する手順」を紹介します。

この記事を読み終えることで、「APSchedulerライブラリを使ってPythonを定期実行できる」状態になります。
 

★APSchedulerとは★
APScheduler(Advanced Python Schedulerの略称)は、Pythonで作成した関数や処理を「1回だけ」または「定期的にスケジュール」できるPythonライブラリです。
参照:APSchedulerとは(公式サイト)


 

PythonのAPSchedulerで処理を定期実行するための準備


「PythonのAPSchedulerで処理を定期実行するための準備」に関してご紹介します。

★PythonのAPSchedulerで処理を定期実行するための準備の流れ★
手順1:Pythonをインストール
手順2:Pythonの「APScheduler」ライブラリをインストール



上記手順を実施することで、「PythonのAPSchedulerで処理を定期実行するための準備」ができます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年12月2日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)




以降で、上記「PythonのAPSchedulerで処理を定期実行するための準備の流れ」の各手順に関してご説明します。
 

手順1:Pythonをインストール

「手順1:Pythonをインストール」に関して解説します。
 

APSchedulerをインストールするためにも、Pythonをインストールしましょう。



以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール
 

既にPythonをインストールされている方は、本手順を省略してください。



以上で、「手順1:Pythonをインストール」は完了です。
 

手順2:Pythonの「APScheduler」ライブラリをインストール

「手順2:Pythonの『APScheduler』ライブラリをインストール」に関して解説します。
 

Pythonで作成した処理を定期実行するために、Pythonライブラリである「APScheduler」をインストールしましょう。



APSchedulerをインストールするために、「端末」または「コマンドプロンプト」を起動し、以下のコマンドを順に実行しましょう。

# pip install apscheduler
# pip list | grep -i apscheduler
APScheduler (3.8.1)
# 



コマンンド実行後、「APScheduler(バージョン)」が表示された場合、「正常にAPSchedulerライブラリをインストールできた」と判断できます。

以上で、「手順2:Pythonの『APScheduler』ライブラリをインストール」は完了です。
 

上記の流れで、PythonのAPSchedulerで処理を定期実行するための準備ができました。


 

PythonのAPSchedulerで処理を定期実行する手順


「PythonのAPSchedulerで処理を定期実行する手順」に関してご紹介します。

★PythonのAPSchedulerで処理を定期実行する流れ★
手順1:PythonのAPSchedulerで処理を定期実行するプログラムを作成
手順2:APSchedulerで処理を定期実行するPythonプログラムの動作確認



上記の流れで、「APSchedulerでPythonの処理を定期実行」できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年12月2日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「PythonのAPSchedulerで処理を定期実行する流れ」の各手順に関してご説明します。
 

手順1:PythonのAPSchedulerで処理を定期実行するプログラムを作成

「手順1:PythonのAPSchedulerで処理を定期実行するプログラムを作成」に関してご説明します。
 

「APSchedulerでPythonの処理を定期実行する」プログラムを作成しましょう。



「PythonのAPSchedulerで処理を定期実行する」プログラムは、以下となります。プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import datetime
## APSchedulerライブラリをインポート
from apscheduler.schedulers.blocking import BlockingScheduler

## 定期実行したい処理を関数化(処理内容は適宜変更)
def job_0():
  now = datetime.datetime.now()
  print("job_0を実行しました。" + now.strftime('%Y-%m-%d %H:%M:%S'))

def job_1():
  now = datetime.datetime.now()
  print("job_1を実行しました。" + now.strftime('%Y-%m-%d %H:%M:%S'))

## APSchedulerの変数を定義
scheduler = BlockingScheduler()

## APSchedulerで実行したい関数を登録(5秒間隔で実行)
scheduler.add_job(job_0, 'interval', seconds=5)

## APSchedulerで実行したい関数を登録(毎時10分に実行[例:8時10分に実行])
scheduler.add_job(job_1, 'cron', minute=32)

## APSchedulerを実行
scheduler.start()



上記のプログラムを「python-apscheduler.py」というファイル名で保存しましょう。
 

★add_jobに指定できる値について★
第1引数:定期実行したい関数を指定
第2引数:どのようなルールで定期実行するかを指定
 cron:時間を指定して定期実行する場合
 date:日時を指定して定期実行する場合
 interval:間隔を指定して定期実行する場合
第3引数以降:第2引数で指定したルールが利用する値を指定

より詳細にadd_jobに関して知りたい方は、以下を参照してください。
参照:add_jobのAPIリファレンス(公式サイト)



ちなみに、ある関数をバックグラウンドで定期実行したい場合は、「scheduler = BackgroundScheduler()」を使います。
 

★BackgroundSchedulerとBlockingSchedulerの違い★
・BlockingScheduler
 指定された処理をフォアグラウンドで定期実行する。
 start()は、定期処理が終わるまたは停止されるまで返却されません。
 参照:BlockingSchedulerの仕様(公式サイト)
・BackgroundScheduler
 指定された処理をバックグラウンドで定期実行する。
 start()は、定期処理が終わる前に返却されます。
 参照:BackgroundSchedulerの仕様(公式サイト)



以上で、「手順1:PythonのAPSchedulerで処理を定期実行するプログラムを作成」は完了です。
 

手順2:APSchedulerで処理を定期実行するPythonプログラムの動作確認

「手順2:APSchedulerで処理を定期実行するPythonプログラムの動作確認」に関して解説します。
 

Pythonで作成した「APSchedulerで処理を定期実行する」プログラムの動作を確認しましょう。



Pythonで作成した「APSchedulerで処理を定期実行する」プログラムの動作を確認するために、以下のコマンドを実行してください。

# python python-apscheduler.py
job_0を実行しました。2021-12-02 11:31:36
job_0を実行しました。2021-12-02 11:31:41
job_0を実行しました。2021-12-02 11:31:46
job_0を実行しました。2021-12-02 11:31:51
job_0を実行しました。2021-12-02 11:31:56
job_1を実行しました。2021-12-02 11:32:00
job_0を実行しました。2021-12-02 11:32:01
job_0を実行しました。2021-12-02 11:32:06



コマンド実行後、「定期的に文字列」が表示された場合、「正常にPythonのAPSchedulerで処理を定期実行できた」と判断できます。
 

以上で、「手順2:APSchedulerで処理を定期実行するPythonプログラムの動作確認」は完了です。
 

上記の流れで、PythonのAPSchedulerで処理を定期実行できました。


 

【まとめ】PythonのAPSchedulerで処理を定期実行する手順【10行で実現】


いかがでしたでしょうか?「定期的に処理を実行できるPythonのAPSchedulerライブラリをインストールする手順」、「APSchedulerライブラリを用いて処理を定期実行する流れ」を解説し、以下の悩みを解決しました。
 

★悩み★
・Pythonで作成した関数を20分間隔で処理できないのかな?
・Pythonで作成した関数を毎日20時に実行する方法を知りたい。
・PythonのAPSchedulerライブラリで処理を定期実行する手順を知りたい。



「APSchedulerライブラリ」を利用するだけで、「毎日20時に処理を定期実行する」や「5秒毎に処理を定期実行する」ができます。ぜひあなたも本記事を参考に「PythonのAPSchedulerで処理を定期実行」を実践してください。