APScheduler如何在工作日设置不同的时间?

2024-09-24 06:20:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手。 我的问题是如何设置在工作日工作的调度程序。周一上午8点开始,周五下午5点结束

在此期间内有多个间隔作业

每小时作业1,每4小时作业2。我可以使用不同的调度程序吗?像

    def job1():
       print('job 1 hour')

    def job2():
       print('job 4 hour') 

    if __name__=='__main__':
       job1()
       job2()

       sched1 = BackgroundScheduler()
       sched2 = BackgroundScheduler()

       sched1.add_job(job1, 'interval', hours=1)
       sched2.add_job(job2, 'interval', hours=4)

       sched1.start()
       sched2.start()

我没有尝试上面的代码,因为我无法确定第一个部分是从周一上午8点到周五下午5点


Tags: 程序adddef作业job调度print小时
1条回答
网友
1楼 · 发布于 2024-09-24 06:20:44

首先,为什么有多个调度程序?接下来,没有什么可以阻止您的应用程序在这里结束时退出,因此可以使用BlockingScheduler

至于实际问题,也许{}是你想要的?您可以指定开始和结束工作日,因此对于使用1小时间隔的job1,您可以执行以下操作:

from apscheduler.triggers.cron import CronTrigger

trigger1 = CronTrigger(day_of_week='mon', hour='8-')
trigger2 = CronTrigger(day_of_week='tue-thu', hour='*')
trigger3 = CronTrigger(day_of_week='fri', hour='-17')
sched.add_job(job1, 'or', trigger1, trigger2, trigger3)

对于job2,您可以使用hour='*/4'on trigger2使其在时钟上每4小时运行一次

相关问题 更多 >