import schedule import time from datetime import datetime def job(): print(“ジョブが実行されました。”) # 毎日8時30分にジョブを実行 schedule.every().day.at(“08:30”).do(job) while True: # 現在の日時を取得 current_time = datetime.now().strftime(“%H:%M:%S”) print(f”現在の時刻: {current_time}”) # スケジュールに登録されているジョブを実行 schedule.run_pending() # 1分ごとに確認 time.sleep(120) これなら、タスクはスキップされる可能性はある?8時31分になったらタスクは実行されないよね
はい、提供されたコードでは、time.sleep(120)により1分ごとの確認がなされていますが、その間に他のジョブやイベントがスケジュールされていないかどうかを確認するため、8時30分にジョブがスケジュールされても、8時31分になるまでジョブが実行されない可能性があります。
例えば、8時30分にジョブがスケジュールされ、そのジョブが1分以内に終了する場合、8時31分に次のジョブがスケジュールされても、time.sleep(120)により1分待機しているため、8時31分のジョブは実行されない可能性があります。
タスクを正確に指定した時間に実行するためには、外部のタスクスケジューラやサービスの利用を検討するか、より精密なタイマーイベントを実装する必要があります。外部のスケジューラを利用することで、システムが起動している間にタスクを正確に指定した時間に実行できます。

ディスカッション
コメント一覧
まだ、コメントがありません