Я столкнулся с этим исключением, когда работал с Angular, чтобы показать данные REST API Rask, которые развернуты на сервере nginx:
{ "error": "(_mysql_exceptions.ProgrammingError) (2014, \"Commands out of sync; you can't run this command now\") [SQL: 'SELECT ......" }
Это исключение вызвано этой функцией, которая одновременно отправляет два запроса в базу данных:
ngOnInit() {
let url = this.baseUrl + '/items/${this.id}';
this.httpClient.get(url).subscribe((data : Array<any>)=> {
this.ItemToEdit = data;
});
let url = this.baseUrl + '/products'
this.httpClient.get(url);
}
Я использую SQLAlchemy в API с базой данных Mysql. Я думал, что если я добавлю соединение с пулом, он будет разрешен, но это не так, я все равно получаю такое же исключение:
engine = create_engine(connection_string, pool_size=20, max_overflow=0)
Что я должен делать, чтобы справиться с этим? Есть ли что-нибудь еще, чтобы установить на стороне сервера, чтобы эта функция работала без получения исключения?
Является ли это наблюдаемой проблемой обработки или может быть fixeb, используя Gunicorn
с nginx на стороне сервера?
Использование Gunicorn решило мою проблему. Я запускаю приложение таким образом:
gunicorn -b 0.0.0.0:5000 --workers=5 myapi:app
И я больше не вижу ошибки даже с 3 запросами mysql
в ngOnInit