2013-07-10 12 views
5

Więc ja wreszcie zdobyć nginx + uWSGI działa z powodzeniem na moim Django zainstalowaćjak zabić proces uWSGI

jednak problem mam teraz jest, kiedy wprowadzać zmiany w kodzie muszę ponownie uruchomić proces uWSGI aby zobaczyć moje zmiany

czuję się jak używam poprawnego polecenia tutaj (jestem bardzo nowy w Linuksie, jak również przy okazji):

uwsgi --stop /var/run/uwsgi.pid 
uwsgi --reload /var/run/uwsgi.pid 

mam żadnego błędu podczas uruchamiania tych poleceń jednak mój stary kod jest nadal jakie obciążenia

wiem też jej nie problem kodowania ponieważ wpadłem mój app django w serwerze rozwoju i wszystko przebiegało wyśmienitą

Odpowiedz

4

zalecany sposób zasygnalizować przeładowywania danych aplikacji jest użycie opcji --touch-reload. Przykładowa składnia na ini grzywny jest:

touch-reload /var/run/uwsgi/app/myapp/reload 

Gdzie myapp to nazwa aplikacji. /var/run/uwsgi/app to zalecane miejsce dla takich plików (może być gdziekolwiek). Plik reload jest pustym plikiem, którego znacznik czasu jest obserwowany przez uwsgi, gdy tylko ulegnie zmianie (na przykład przy użyciu touch), uWSGI wykrywa tę zmianę i ponownie uruchamia odpowiednią instancję aplikacji uWSGI.

Po każdej aktualizacji kodu należy dotknąć pliku, aby zaktualizować wersję aplikacji w pamięci. Na przykład, bash:

sudo touch /var/run/uwsgi/app/myapp/reload 

Uwaga --reload jest nieudokumentowana opcja w aktualnej wersji uWSGI.

+0

kiedy wypowiadasz próbkę na pliku .ini, masz na myśli umieścić tę linię przeładowania dotyku w pliku ini? i skąd pochodzi struktura aplikacji/myapp? – tareq

+0

tak, ta linia powinna zostać dodana do pliku .ini odpowiadającego twojej aplikacji. Jeśli używasz XML, YAML, JSON, będziesz musiał użyć poprawnej składni zamiast standardu .ini ' = . Używam do umieszczenia pliku 'touch-reload' w katalogu'/var/run/uwsgi/app/ 'ale możesz umieścić go w dogodnym dla siebie miejscu, takim jak katalog domowy. – flaviodesousa

+0

Co to jest plik dotykowy, do którego teraz się odwołujesz ?? W tej chwili myślę w moim pliku ini 'touch-reload/path/to/my/ini/file', ale to nie ma sensu, zakładam, że muszę utworzyć plik dotykowy-załaduj ponownie? co umieszczam w tym pliku? – tareq