job_stores = {
'default': MongoDBJobStore(database=databasename,
client=clientname, collection="schedulejob")
}
executors = {
'default': {'type': 'threadpool', 'max_workers': 5}
}
job_defaults = {
'coalesce': True, # When the same task is triggered multiple times at the same time, it runs only once
'max_instances': 3,
'misfire_grace_time': 3600, # The task is still executed after 30 seconds of expiration
}
global sched
sched = BackgroundScheduler(jobstores=job_stores, executors=executors, job_defaults=job_defaults, daemon=True)
sched.add_job(helloworld, 'interval', hours=3, args=(),
name=name)
我可以看到 schedulejob 是用单个条目创建的,但是在相应的时间戳上,我的同一个函数 helloworld 被执行了四次。
注意:我使用的是带有 4 个节点的 Flask 服务器。是不是四个节点的原因。