sqlalchemy.exc.TimeoutError: предел QueuePool для размера 10 переполнен 10 достигнут, тайм-аут соединения, тайм-аут 30 - PullRequest
0 голосов
/ 03 октября 2019

Несмотря на многие ответы здесь, я не смог решить свою проблему, может быть, я не понял ее правильно

вот как мой app.py выглядит так:

from flask import Flask, request, jsonify,session
from flask_cors import CORS
from dbconfig import employee_details,Emps_schema,Emp_schema,db

app=Flask(__name__)
app.secret_key = 'the random string'
CORS(app)

@app.route("/addemp", methods=["POST"])
def add_emp():
    empname = request.json['empname']
    email = request.json['email']
    department = request.json['department']

    new_emp = employee_details(empname, email, department,password='***')

    db.session.add(new_emp)
    db.session.commit()
    return Emp_schema.jsonify(new_emp)

@app.route("/emp/<empid>", methods=["PUT"])
def employee_update(empid):
    emp = employee_details.query.get(empid)
    empname = request.json['empname']
    department = request.json['department']

    emp.empname=empname
    emp.department=department

    db.session.commit()
    return Emp_schema.jsonify(emp)

Если я попытаюсьчтобы закрыть сеанс, обновление [PUT] не работает (как и во многих ответах, после каждого коммита должно быть закрытие сеанса)

и dbconfig.py:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow



app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/empdb'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
# app.config['SQLALCHEMY_POOL_SIZE'] = 30
app.config["SQLALCHEMY_ENGINE_OPTIONS"] = {"pool_size": 20}

db = SQLAlchemy(app)
ma=Marshmallow(app)

class employee_details(db.Model):
    empid = db.Column(db.Integer,primary_key=True)
    empname = db.Column(db.String(20), unique=False)
    email = db.Column(db.String(50))
    department = db.Column(db.String(50))
    password = db.Column(db.String(100))




    def __init__(self,empname,email,department,password):

        self.empname=empname
        self.email=email
        self.department=department
        self.password=password

class EmpSchema(ma.Schema):
    class Meta:
        fields = ('empid','empname','department',,'email')

Emp_schema = EmpSchema()
Emps_schema = EmpSchema(many=True)

db.create_all()

Какмогу ли я решить эту ошибку:

sqlalchemy.exc.TimeoutError: QueuePool limit of size 10 overflow 10 reached, connection timed out, timeout 30

Какие-либо изменения в моем коде для решения этой проблемы? пожалуйста, предложите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...