Como eu faço o uWSGI reiniciar quando um script Python é modificado?

37

Não consigo lembrar onde, mas eu li que o uWSGI pode se recarregar como o servidor de desenvolvimento do Django quando um script de projeto é modificado. Não consigo encontrar isso em os documentos , nem nas internets. Como posso fazer isso?

Eu uso o Ubuntu 12.04 em minhas máquinas de trabalho e o Debian Squeeze no palco & servidor de produção, Django 1.4 e uWSGI 1.2.

    
por culebrón 26.07.2012 / 08:00

3 respostas

36

Referência: link

Se você começou o uwsgi com a opção --touch-reload=/path/to/special/file/usually/the.ini , recarregar o uWSGI é uma simples questão de tocar o arquivo com

touch /path/to/special/file/usually/the.ini

E se você quiser o recurso "autoreload", essa é a dica que faz isso: link

    
por 26.07.2012 / 08:05
34

Existe uma opção py-autoreload=N em versões mais recentes. Basta definir N para a frequência (em segundos) das verificações (3 é um bom valor).

    
por 27.07.2012 / 10:23
9

Se você não quer perder o autoreload do django, registre este método de recarga (por exemplo, em settings.py):

import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload

@timer(3)
def change_code_gracefull_reload(sig):
    if autoreload.code_changed():
        uwsgi.reload()

Agora, se você alterar seu código, ele será recarregado.

Autor: Simone Federici

    
por 04.11.2014 / 21:31