У меня есть приложение Flask, которое развернуто на одном экземпляре AWS EC2. В моем файле __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
Это не решит вашу проблему, но не использует встроенную -in dev сервер в производстве. Он не предназначен для этого. – davidism