APScheduler在单一EC2实例得到多次调用(APScheduler on a single

2019-11-04 04:08发布

我的影片部署在单个AWS EC2实例的烧瓶中的应用。 在我的__init__.py文件,我实例化计划每隔1小时间隔运行作业的BackgroundScheduler。 下面是我的__init__.py代码的例子:

application = Flask(__name__)
app = application
scheduler = BackgroundScheduler()
run_my_jobs = scheduler.add_job(my_job,  'interval', hours=1)
scheduler.start()

由于实例化的瓶背景之外完成的,与运行在EC2上只有一个单一实例,我的调度应该只被实例化一次,不管有多少用户连接到我的瓶应用在整个一天,我会认为。

这已普遍在过去几个月的情况,然而最近,在过去几天,我注意到调度已执行作业每小时将近2-3倍。 虽然我一直在继续推动代码来制作,文件__init__.py一直保持不变,所以我很困惑,什么是可能的原因造成调度的多个实例?

Answer 1:

通常有两种方式会发生这种情况:

  1. 使用多个工作进程
  2. 把代码,您的应用程序的入口点的模块,而不是与保护它if __name__ == '__main__':

从你的描述我假设#1是不是这样的,所以我会去#2。



文章来源: APScheduler on a single EC2 instance getting called multiple times