Bei der Arbeit verwenden wir gevent, um einige asynchrone Server zu erstellen, und es gibt eine Debatte darüber, wann Affepatching in Relation zu anderen Modulen durchgeführt werden soll. GEVENT Dokumentation zeigt Dinge wie diese:gevent monkey patchen order
from gevent import monkey
monkey.patch_socket()
import socket
Wo der Affe Patchen geschieht, bevor die Bibliotheksmodule importiert wurden.
jedoch fühlt sich mein Manager die Reihenfolge der Affe Patchen sollte dies sein: Nach dem Bibliotheksmodul
import socket
from gevent import monkey
monkey.patch_socket()
Wo Affe Patchen wird importiert genannt wird. Was es so aussehen lässt, als würde Affe-Patching das Socket-Modul importieren, und es zu diesem Zeitpunkt patchen.
Ich habe einige Diskussionen gefunden, die sagen, tun Sie es in eine Richtung, und andere, die sagen, es zu tun, die andere. Meine eigenen einfachen Tests scheinen zu sagen, dass es keine Rolle spielt. Hat jemand eine Meinung dazu, mit einigen klaren Gründen, oder Referenzen, die warum sagen?
Vielen Dank im Voraus! Doug
Danke für die "Smack Upside the Head", ich habe diese Dokumentation ein paar Mal gelesen, und war immer noch verwirrt wegen der Beispiele, die ich im Netz gesehen habe, die es sonst tun. Sollte den Dokumenten vertraut haben. :) –
Hallo Jason, Bitte klären, was mit (Python 3.5.2 auf Linux) ** von gevent.monkey Import patch_all falsch ist; is_module_patched; patch_all(); Import-Socket; is_module_patched (socket) ** => _False_ – dvska
'is_module_patched (modname)' nimmt ein Modul * name * nicht das Modul selbst. –