Frage Wie mache ich uWSGI neu, wenn ein Python-Skript geändert wird?


Kann mich nicht erinnern, wo, aber ich las uWSGI kann sich wie Django Entwicklungsserver neu laden, wenn ein Projektskript geändert wird. Ich kann das nicht finden die Dokumentenoch im Internet. Wie kann ich das machen?

Ich benutze Ubuntu 12.04 auf meinen Working Machines und Debian Squeeze auf der Bühne & Produktionsserver, Django 1.4 und uWSGI 1.2.


37
2017-07-26 08:00


Ursprung




Antworten:


Referenz: http://projects.unbit.it/uwsgi/wiki/Management

Wenn du mit dem uwsgi angefangen hast --touch-reload=/path/to/special/file/usually/the.ini option, neuladen Ihres uWSGI ist eine einfache Sache der Berührung, die Datei mit neu zu laden

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

Und wenn Sie die "Autoreload" -Funktion möchten, ist dies der Tipp, der dies erledigt: http://projects.unbit.it/uwsgi/wiki/TipsAndTricks#uWSGIdjangoautoreloadmode


35
2017-07-26 08:05





Da ist ein py-autoreload=N Option in neueren Versionen. Einfach einstellen N auf die Häufigkeit (in Sekunden) der Kontrollen (3 ist ein guter Wert).


34
2017-07-27 10:23



Das ist noch besser, danke! - culebrón
"nur in der Entwicklung verwenden" nach uwsgi docs - scytale
sieht aus wie Touch-Reload = / einige / Datei ist eine sicherere Option - scytale


Wenn Sie den Django-Autoreload nicht verlieren möchten, registrieren Sie diese Reload-Methode (d. H. In 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()

Wenn Sie jetzt Ihren Code ändern, wird er neu geladen.

Autor: Simone Federici


8
2017-11-04 21:31



Das hat perfekt funktioniert. Außerdem wurde eine Bedingung hinzugefügt, sodass diese nur in der Entwicklungsumgebung aufgerufen wird. - 2upmedia