3

geventプロセスでconnection refused because too many open connections: 204実行しようとすると、エラーが発生します。MyApp.objects.get(foo=bar)models.py にはconnect('my_db'). 私のスクリプトでは、gevent.monkey.patch_all()この質問を見たことがあります

pymongo + gevent: バナナを投げて、monkey_patch だけ?

そしてこの問題

https://github.com/hmarr/mongoengine/issues/272

しかし、接続にアクセスして呼び出す方法がわかりませんend_request。このパッチも試しましたが、役に立ちません (間違って使用していない限り)。

https://gist.github.com/1184264

4

2 に答える 2

0

更新: この問題は、今年初めに pymongo で解決されました。最新バージョンの pymongo を使用していることを確認してください。

元の回答:

どうやら、ここで説明されているように、「ワーカーへのリクエストをキューに入れ、要求に応じて新しい PyMongo 接続を割り当て、接続エラーでそれらを破棄し、ターゲット メソッドを呼び出すプロキシ クラス」を使用することで、この問題を解決できるようです。

http://groups.google.com/group/gevent/browse_thread/thread/a423d1a15d83f73c

(Antonin Amand による 2011 年 8 月 31 日の投稿と Alexey Borzenkov による応答を参照)

PS そして、いずれにせよ、MongoDB の人々は問題の解決に取り組んでいます: https://jira.mongodb.org/browse/PYTHON-296

于 2012-02-04T15:53:57.703 に答える
0

これはmongoengineでそれを行う方法のようです(デフォルトの接続が1つあると仮定します):

mongoengine.connection.get_connection('デフォルト').start_request()

mongoengine.connection.get_connection('デフォルト').end_request()

于 2013-04-17T02:53:03.223 に答える