1. scheduleとは
Pythonで定期実行したいときに便利なパッケージです
https://schedule.readthedocs.io/en/stable/
2. install
pipで入ります
terminal
pip install schedule
3. 使い方
ざっくり以下のような手順です
- scheduleをimportした時点でscheduleがクラスインスタンスになる
- schedule.every()で定期実行の条件をいろいろ付けていく
- ループ内で読んでやると指定条件を満たしたときに実行してくれる
書き方としては以下のような感じです
import schedule # 1. importした時点でscheduler.Scheduler()が待機してくれます
import time
def job(): # 実行させたい関数を定義
print("I'm working...")
schedule.every(10).minutes.do(job) # 2. 条件を追加: 10分おき
schedule.every().hour.do(job) # 2. 条件を追加: 1時間おき
schedule.every().day.at("10:30").do(job) # 2. 条件を追加: 毎日10:30
schedule.every().monday.do(job) # 2. 条件を追加: 毎週月曜
schedule.every().wednesday.at("13:15").do(job) # 2. 条件を追加: 毎週水曜13:15
schedule.every().minute.at(":17").do(job) # 2. 条件を追加: 毎時17分
while True:
schedule.run_pending() # 3. 指定時間が来てたら実行、まだなら何もしない
time.sleep(1) # 待ち
4. まとめ
良いと思う点
・ 処理がPythonで書かれているのでOSを選ばないのが便利
・ 複数の関数でもそれぞれ任意のタイミングで実行できるのが便利
イマイチかもしれん点
・ プロセスが死んだらそこで止まるので、別途プロセス監視とかしないといけなくなりそう