如何使用 apscheduler 在特定分钟(例如 00、10、20)每小时将 python 函数安排到 运行
How to schedule a python function to run every hour at specific minute (ex 00, 10, 20) with apscheduler
我尝试在我的脚本中安排一个函数在每小时的特定分钟 运行,即如果我的脚本在 运行ning 开始于 11.46,我的函数将在 运行 在 11.50 、12.00、12.10 等,如果失败并重新启动,则执行相同的操作。我已经看到可以从命令行使用 cron 执行此操作但是有没有办法在脚本是 运行 调度程序时执行此操作?
我已经创建了一个调度程序,它在我的脚本启动后每 10 分钟 运行 执行一次,但我希望我的函数在特定分钟内 运行 而不仅仅是特定时间间隔。
from apscheduler.schedulers.background import BackgroundScheduler
import atexit
def demo_job:
print("test")
try:
sched = BackgroundScheduler(daemon=True)
sched.add_job(demo_job, trigger='interval', minutes=10)
sched.start()
atexit.register(lambda: sched.shutdown(wait=False))
except:
print("Unexpected error:")
如果我的脚本在 11.47 运行ning 开始,我函数的第一个计划调用是在 11.57,下一个是在 12.07、12.17 等等...我希望第一个 运行 在 12.00 , 下一个在 12.10, 12.20 等等
您可以尝试使用cron trigger。
sched.add_job(
demo_job,
trigger='cron',
minute='*/10',
hour='*'
)
表达式 */10
将从最小值开始,每十分钟触发一次作业。 Crontab ref
我尝试在我的脚本中安排一个函数在每小时的特定分钟 运行,即如果我的脚本在 运行ning 开始于 11.46,我的函数将在 运行 在 11.50 、12.00、12.10 等,如果失败并重新启动,则执行相同的操作。我已经看到可以从命令行使用 cron 执行此操作但是有没有办法在脚本是 运行 调度程序时执行此操作?
我已经创建了一个调度程序,它在我的脚本启动后每 10 分钟 运行 执行一次,但我希望我的函数在特定分钟内 运行 而不仅仅是特定时间间隔。
from apscheduler.schedulers.background import BackgroundScheduler
import atexit
def demo_job:
print("test")
try:
sched = BackgroundScheduler(daemon=True)
sched.add_job(demo_job, trigger='interval', minutes=10)
sched.start()
atexit.register(lambda: sched.shutdown(wait=False))
except:
print("Unexpected error:")
如果我的脚本在 11.47 运行ning 开始,我函数的第一个计划调用是在 11.57,下一个是在 12.07、12.17 等等...我希望第一个 运行 在 12.00 , 下一个在 12.10, 12.20 等等
您可以尝试使用cron trigger。
sched.add_job(
demo_job,
trigger='cron',
minute='*/10',
hour='*'
)
表达式 */10
将从最小值开始,每十分钟触发一次作业。 Crontab ref