import schedule import time def job(): print("I'm working...") schedule.every(10).seconds.do(job) # 每10秒执行一次 schedule.every().wednesday.at("13:15").do(job) # 每周三13点15执行 schedule.every(10).minutes.do(job) # 每10分钟执行一次 schedule.every().hour.do(job) # 每小时执行一次 schedule.every().day.at("10:30").do(job) # 每天十点半执行 schedule.every(5).to(10).minutes.do(job) # 每5-10分钟随机执行一次 schedule.every().monday.do(job) # 每周一执行 schedule.every().minute.at(":17").do(job) # 每分钟的17秒执行一次 while True: schedule.run_pending() # 运行所有可运行的任务
4:30 に実行したい場合は、単にschedule.every().day.at("4:30")ではなく、schedule.every().day.at("04:30").do(job)
と記述する必要があります。 do (ジョブ)
プログラムの実行時間が設定した時間間隔より短い場合、つまり、次にスケジュールされたプログラムの実行が開始されるとき、最後のプログラムがまだ実行されていない場合、新しいプロセスが開始されます。
プロセスが多すぎると大惨事になります
スケジュール設定によるタスクの時間指定実行
import schedule import time # 定义某个任务 def job(): ... # 设置执行时间 schedule.every().seconds.do(job) # 每秒执行一次任务 schedule.every().minutes.do(job) # 每分钟执行一次任务 schedule.every().hour.do(job) # 每小时执行一次任务 # 可以指定具体时间间隔 schedule.every(10).minutes.do(job) # 每10分钟执行一次任务 # 设置每天某一时刻执行 schedule.every().day.at("05:15").do(job) # 每天凌晨5点15分执行任务 # 设置星期几执行 schedule.every().monday.at("05:15").do(job) # 每周一凌晨5点15分执行任务 while True: schedule.run_pending() # 运行所有可运行的任务
最初に注意すべき点は、サービスを開始するにはプログラムを手動で実行する必要があるということです (この時点でプログラムは一時停止されます)。指定された時間に実行を継続します。
2 番目の注意点は、これを使用する場合、プログラムの実行時間により、時間遅延の問題が発生するということです。たとえば、コードが 10 分ごとに実行されるように設定されている場合、
schedule.every(10).minutes.do(job) # 每10分钟执行一次任务の結果は になりますが、次の実行時間は 10 分後になります。最後のプログラム実行の終了、そしてプログラムが前回から 10 分後に実行されることを望みます。つまり、正しい時刻は 10:20:21 である必要があります。これが続くと、時間遅延が大きくなります。そしてさらに大きい。 解決策特定の時間を追加するだけです (ここでの設定は 15 秒です):
schedule.every(10).minutes.at(":15").do(job) # 每10分钟过15s执行程序つまり、
10:00:21サービスを開始します。
最初の実行は 10:10:15 です。2 回目の実行は 10:20:15 です。
3 回目の実行は 10:30:15 です。
…
サービスを初めて開始する場合、正常に実行するには、現在時刻から 15 秒後にプログラムを実行する必要があります。
たとえば、サービスが 10:00:08 に開始された場合、次回は 10:09:15 に実行されます (例外) たとえば、サービスが開始された場合10:00:21 に実行されると、次回は 10:00:21 に実行されます。 10:10:15 に実行されます (通常)
以上がPython でのプログラムのスケジュールされた実行の問題を解決する方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。