我有一個部署在單個AWS EC2實例上的Flask應用程序。在我的__init__.py文件中,我已經實例化了一個BackgroundScheduler,並且計劃每隔1小時運行一次作業。 這裏是我的__init__.py代碼的例子:APScheduler在單個EC2實例上多次調用
application = Flask(__name__)
app = application
scheduler = BackgroundScheduler()
run_my_jobs = scheduler.add_job(my_job, 'interval', hours=1)
scheduler.start()
我會假設,因爲實例化的瓶背景之外完成的,與運行在EC2上只有一個單一實例,我的調度應該只被實例化一次,無論有多少用戶全天連接到我的Flask應用程序。
過去幾個月的情況通常就是這樣,但是最近在過去的幾天裏,我注意到調度器每小時一直在執行這個工作幾乎2-3次。雖然我一直在繼續推送代碼到生產環境中,但__init__.py文件保持不變,所以我很困惑有什麼可能的原因導致調度程序的多個實例化?
你是如何運行你的應用程序? – davidism
@davidism我把它放在應用程序模塊中,當它被推送到AWS時,有一個application.py文件導入應用程序並調用application.run() – nicknaky
這不會解決您的問題,但不要使用內置在生產中的開發服務器。它不是爲此設計的。 – davidism