Pregunta

Estoy actualmente en ejecución un proyecto de Django en el servidor web de mi escuela con FCGI. Hice siga las múltiples guías que recomienda la instalación de un entorno Python local virtual y funcionó muy bien. El único problema que tuve fue que "tocar" mi fcgi-archivo para archivos de código-recarga no era suficiente, sino que tuve que matar al servicio de pitón a través de SSH. Se utiliza esto porque mod_fcgid.

Sin embargo, el administrador no pensó que era una gran idea que me encontré mi propia pitón local. Él pensó que sería mejor si yo sólo le dije lo que los módulos a instalar en la raíz, que era un buen servicio muy en serio.

Pero haciendo esto, ya no puedo matar a Pitón, ya que es en la raíz (aunque inmoral como soy, definitivamente he probado). La recomendación fue que los administradores que debería intentar hacer demasiado la propia escritura de recarga fcgi mediante la comprobación de marca de tiempo. He tratado de encontrar documentación sobre cómo hacer esto, pero muy poco fondo y ya que soy un principiante absoluto no tengo ni idea de lo que iba a funcionar. Alguien tiene experiencia en el manejo de Python / Django bajo mod_fcgid o consejos sobre dónde encontrar guías relacionados / documentación?

¿Fue útil?

Solución

esto es lo que yo haría:

## top of my .fcgi script
import sys, time
original_modules = sys.modules.copy()

## in a separate thread
old_ctime = os.path.getctime("mymodule.py")
while True:
    time.sleep(10)
    new_ctime = os.path.getctime("mymodule.py")
    if new_ctime > old_ctime:
        sys.modules = original_modules # reset all imports
        import mymodule
        mymodule.dofcgi()

Esto no es otorgado drop-in perfecto (es posible que tenga que meterse w / la rosca) pero debe darle una idea general de cómo se "recarga" un módulo completo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top