私はpythonでflask-sqlalchemyライブラリを使用して自分のデータベース(my sql)を管理しています。私は、クエリをテストするとき はしかし、それは私に、このエラーを与える:Pythonフラスコ - SQLAlchemyクエリのタイムアウトエラー
sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 10
テストコードは単純です:
def test_query(self, i):
random = str(i)
result = Dao.query_user_by_nick("kael")
print("end query at %s, id: %s" % (datetime.datetime.now(), random), "\n result: " + str(len(result)))
threads = []
for i in range(0,100):
test = threading.Thread(target=test_query, args=(self, str(i)))
threads.append(test)
for t in threads:
t.start()
query_user_by_nickの実装です:
@classmethod
def query_user_by_nick(self,name):
user = User.query.filter_by(nick_name=name).all()
return user
私は、クエリを実行していますマルチスレッドでは、このエラーは常に発生し、私はそれがどうなるのか分かりません。私はまた、マルチスレッドでいくつかのデータを挿入し、それは正常に動作します。 私は周りを検索し、何も私に影響を与えませんでした。誰かが接続が15に制限されると言いましたが、このデータベースは非常に頻繁にクエリになります。 誰かが私に何か示唆を与えることができたらうれしいです。前もって感謝します。
を増加させることができる許可をありがとう、ええ、これは問題を少し解決しますが、WHありませんスレッドを増やすと、クエリのタイムアウトエラーも発生します。幸いにも、私は多くのスレッドをサポートする必要はありません。だから、これは私にとっては良い解決策です。ありがとうございます –
喜んでそれが役立ちます。カルマを守るために答えを受け入れることを検討してください。 :) – TheArchitect