在解决此问题之前,首先要明确一件事情:BackgroundScheduler对象确实没有add_cron_job属性。它只有一个add_job方法来添加作业。如果你想要使用cron表达式来调度作业,你需要使用另一个名为CronTrigger的类。
下面是一个解决此问题的示例代码:
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
def job():
print("Job is running...")
scheduler = BackgroundScheduler()
scheduler.start()
# 使用CronTrigger来定义一个cron作业
trigger = CronTrigger(hour='*', minute='*', second='0') # 每分钟执行一次
scheduler.add_job(job, trigger=trigger)
# 注意:这里使用的是add_job方法,而不是add_cron_job
# 程序会一直运行,直到手动停止调度器
try:
while True:
pass
except (KeyboardInterrupt, SystemExit):
scheduler.shutdown()
在上面的示例中,我们创建了一个BackgroundScheduler对象并使用CronTrigger来定义一个cron作业。然后,我们使用add_job方法将作业添加到调度器中。
请注意,上述代码中的scheduler.shutdown()语句是在程序接收到键盘中断或系统退出信号时手动关闭调度器。这是一个好习惯,以确保在程序退出之前调度器被正确关闭。