在配置 Apscheduler 实例化时,使用官方提供的 Singleton 类实现单例模式,保证只会有一个后台实例在运行。
示例代码如下:
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.util import Singleton
# 使用 Singleton 类实现单例模式
class MyScheduler(BackgroundScheduler, metaclass=Singleton):
pass
# 实例化 Apscheduler
scheduler = MyScheduler()
# 添加任务
def job():
print('job')
scheduler.add_job(job, 'interval', seconds=5)
# 启动定时任务
scheduler.start()
注意:在使用 Singleton 类实现单例模式时,需要按照官方文档的说明,将 metaclass=Singleton
添加到类声明中,否则可能会导致 Apscheduler 实例化失败。