私たちはgeventを使っていくつかの非同期サーバーを作成しています。他のモジュールとの関係でmonkey patchingを実行するタイミングについてはいくつかの議論があります。 geentドキュメンテーションは次のようなものを示しています:gevent monkey patching order
from gevent import monkey
monkey.patch_socket()
import socket
ライブラリモジュールをインポートする前にサルのパッチが当てられます。
しかし、私のマネージャーは、猿のパッチ適用の順序は、このする必要があります感じている:ライブラリモジュールをインポートした後、サルのパッチ適用が呼び出される
import socket
from gevent import monkey
monkey.patch_socket()
。これは、サルのパッチがソケットモジュールがインポートされたことを確認し、その時点でパッチを当てるように見えます。
私は、それを一方向にすると言っている議論と、もう一方でそれを行うと言っている議論を見つけました。私自身の簡単なテストは問題ではないと言うようです。なぜ誰かがこれについての意見を持っているのですか。
ありがとうございます! Doug
「頭を上げてください」というお礼をいただきありがとうございます。私はこのドキュメントを数回読んでいますが、それ以外の場合はネットで見た例のために混乱しました。ドキュメントを信頼する必要があります。 :) –
こんにちはジェイソン、 何が間違っているかを明確にしてください (Linux上のPython 3.5.2) ** from gevent.monkey import patch_all; is_module_patched; patch_all();インポートソケット。 is_module_patched(ソケット)** => _False_ – dvska
'is_module_patched(modname)'はモジュール* name *をモジュール自身ではなく取ります。 –