发送多个请求到Flask API

时间:2018-09-18 15:17:48

标签: mysql flask-sqlalchemy

在与Angular一起工作时,我遇到了这个异常,以展示我的Flask API REST数据,该数据已部署在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);
}

我在Mysql数据库的API中使用SQLAlchemy。我以为,如果我添加一个池连接,它将得到解决,但是没有,我仍然会遇到同样的异常:

engine = create_engine(connection_string, pool_size=20, max_overflow=0)

我该怎么办呢? 在服务器端是否还有其他设置可以使此功能正常工作?

编辑:

这是一个可观察到的处理问题,还是可以通过在服务器端与nginx一起使用Gunicorn来解决?

1 个答案:

答案 0 :(得分:0)

使用Gunicorn解决了我的问题。 我以这种方式启动应用程序:

gunicorn -b 0.0.0.0:5000 --workers=5 myapi:app

即使在mysql中有3个ngOnInit请求,我也再也看不到错误了