LoginSignup
3
2

More than 3 years have passed since last update.

Python 時間帯と実行頻度を指定してスケジュールを実行する方法

Posted at

指定した時間で実施する、もしくは指定した間隔で実行する説明が多いですが、
時間帯と実行頻度を同時に指定する事例が見当たらなかったため、以下の方法で実装しました。
もっと良い方法があれば、ご教示いただけますと幸いです。

import datetime
import time
import schedule

# 開始のジョブ
def startJob():
    # 10分毎に実施するジョブ登録
    schedule.every(10).minutes.do(runJob)
    print('startJob:' + str(datetime.datetime.now()))

# 実際に実行したいメイン処理
def runJob():
    print('runJob:' + str(datetime.datetime.now()))

# 終了のジョブ
def endJob():
    print('endJob:' + str(datetime.datetime.now()))
    for jobV in schedule.jobs:
        if 'runJob()' in str(jobV):
            # メイン処理のジョブを削除
            schedule.cancel_job(jobV)
            break

# 開始するジョブと終了するジョブを定義する
schedule.every().day.at("12:00").do(startJob)
schedule.every().day.at("13:00").do(endJob)

while True:
    schedule.run_pending()
    time.sleep(1)
3
2
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
3
2