11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

scheduleを使ってPythonで定期実行

Posted at

1. scheduleとは

Pythonで定期実行したいときに便利なパッケージです
https://schedule.readthedocs.io/en/stable/

2. install

pipで入ります

terminal
pip install schedule

3. 使い方

ざっくり以下のような手順です

  1. scheduleをimportした時点でscheduleがクラスインスタンスになる
  2. schedule.every()で定期実行の条件をいろいろ付けていく
  3. ループ内で読んでやると指定条件を満たしたときに実行してくれる

書き方としては以下のような感じです

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を選ばないのが便利
・ 複数の関数でもそれぞれ任意のタイミングで実行できるのが便利

イマイチかもしれん点
・ プロセスが死んだらそこで止まるので、別途プロセス監視とかしないといけなくなりそう

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?