我使用uwsgi來運行我的django項目。現在我搜索一種方式來「優雅地」更新代碼。如果我在運行uwsgi時更新代碼,那麼在日誌中會出現很多錯誤,因爲可以在更新代碼中刪除一些模板或文件。所以我需要暫停uwsgi一段時間,並在更新代碼完成後重新啓動它。代碼更新時停止uwsgi
P.S. uwsgi以非root用戶身份運行,我也在該非root用戶下部署代碼,所以我不能這麼做:
uwsgi --stop pidfile.pid.
我使用uwsgi來運行我的django項目。現在我搜索一種方式來「優雅地」更新代碼。如果我在運行uwsgi時更新代碼,那麼在日誌中會出現很多錯誤,因爲可以在更新代碼中刪除一些模板或文件。所以我需要暫停uwsgi一段時間,並在更新代碼完成後重新啓動它。代碼更新時停止uwsgi
P.S. uwsgi以非root用戶身份運行,我也在該非root用戶下部署代碼,所以我不能這麼做:
uwsgi --stop pidfile.pid.
想到兩個選項。
停止uwsgi並在完成後重新啓動。
部署到第二個目錄。例如,假設應用程序指向/ opt/app,然後將代碼部署到〜/ app,並且rm -rf/opt/app/* & & cp -r〜/ app// opt/app;如果掛在任何FD上,您仍可能需要重新啓動uwsgi。
有很多辦法來管理uWSGI代碼重新加載,他們中的絕大多數在這篇文章中描述:http://uwsgi-docs.readthedocs.org/en/latest/articles/TheArtOfGracefulReloading.html
儘量去適應你的具體情況有描述的概念