下面是一个使用Apscheduler库在特定时间范围内的每个工作日运行任务的代码示例:
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.interval import IntervalTrigger
def job():
print('Job running at: {}'.format(datetime.now()))
def start_scheduler():
scheduler = BlockingScheduler()
# 设置任务运行的时间范围,在周一到周五的9:00到17:00之间运行任务
trigger = IntervalTrigger(minutes=1, start_date='2021-01-01 09:00:00', end_date='2021-01-01 17:00:00', timezone='Asia/Shanghai')
# 将任务绑定到触发器
scheduler.add_job(job, trigger)
scheduler.start()
start_scheduler()
这段代码中,我们首先导入了需要的模块和类。然后定义了一个任务函数job
,该函数将在每次调度运行时打印当前时间。
在start_scheduler
函数中,我们创建了一个BlockingScheduler
对象,并设置了任务运行的时间范围。在这个例子中,我们将任务设置为每分钟运行一次,从2021年1月1日9:00到2021年1月1日17:00之间运行。
最后,我们将任务函数和触发器通过scheduler.add_job
方法绑定在一起,并调用scheduler.start
方法启动调度器。调度器将按照我们设置的时间范围运行任务。
请注意,以上示例假设你已经安装了apscheduler
库,并且Asia/Shanghai
时区已经正确设置。如果你的时区不同,请根据需要修改时区设置。