Мое flask приложение работало очень хорошо до введения joblib
, но одна из моих конечных точек основана на распараллеливании, и именно тогда я начинаю сталкиваться с проблемами. Функция, которую я распараллеливаю, использует подпроцесс для вызова скрипта python, а также обновляет запись в postgresql db. Я думаю, что это та часть, которая вызывает ошибку. Я изучал SO-решения, которые разрешают сообщения об ошибках того же типа, но они, похоже, не работают для меня.
Ошибка исключения:
RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.
Вот как я настраиваю свое приложение flask:
manage.py
app = create_app('prod')
app.register_blueprint(blueprint)
app.app_context().push()
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
init .py
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config_by_name[config_name])
db.init_app(app)
# Migrate(db)
return app
job_service.py
def update_run(mlflow_run_id, status):
existing_run = Job.query.filter(Job.mlflow_run_id == mlflow_run_id).order_by('batch_load_datetime').first()
if existing_run:
existing_run.batch_load_datetime = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
existing_run.status = status
db.session.commit()