python – 在将当前符号链接切换到新目录后正常重新加载gunicorn

python – 在将当前符号链接切换到新目录后正常重新加载gunicorn,第1张

概述我正在尝试部署我的应用程序,我的文件夹的组织方式意味着我只想在部署新版本时更改符号链接.像这样: ./2013-07-16-10-12-48-test/ ./2013-07-16-10-17-01-test/ ./current -> 2013-07-16-10-17-01-test/ 通常我只是使用kill -HUP master-pid,只要目录保持不变,一切正常.但是当我第一次更改符 我正在尝试部署我的应用程序,我的文件夹的组织方式意味着我只想在部署新版本时更改符号链接.像这样:

./2013-07-16-10-12-48-test/  ./2013-07-16-10-17-01-test/  ./current -> 2013-07-16-10-17-01-test/

通常我只是使用kill -HUP master-pID,只要目录保持不变,一切正常.但是当我第一次更改符号链接然后重新加载时,代码仍然从旧目录运行到其绝对路径,就像gunicorn跟随符号链接并保存最终路径一样.
我开始像这样的gunicorn:gunicorn运行:在“当前”目录中的app -c gunicorn-config.py,我的配置文件如下所示:

workers = 4worker_class = 'gevent'bind = '127.0.0.1:5000'pIDfile = '/var/run/gunicorn.pID'deBUG = Falseloglevel = 'deBUG'errorlog = '/var/log/gunicorn-error.log'daemon = True

有没有办法让gunicorn重新评估符号链接或仅保存符号链接而不是完整路径?也许在某种on_starting或on_reload挂钩?

Here’s一个我无法开始工作的解决方案,也许这会提供更多的背景信息.

解决方法 我使用 USR2 signal得到了这个工作.
这是我的init.d文件,在部署之后,我将运行service gunicorn start_or_reload,它可以根据新位置启动或优雅地重新加载代码.它在技术上产生了当前主人内部的另一个主人,然后杀死了旧工人和主人,最后促进了新产生的主人.我使用这个解决方案后来添加了烟雾测试,然后杀死了老主人和类似的东西.我希望这可以帮助别人!

#!/bin/sh### BEGIN INIT INFO# ProvIDes:          thin# required-Start:    $local_fs $remote_fs# required-Stop:     $local_fs $remote_fs# Default-Start:     2 3 4 5# Default-Stop:      S 0 1 6# Short-Description: thin initscript# Description:       thin### END INIT INFO# Original author: Forrest Robertson# Do NOT "set -e"DEPLOY_PATH=/opt/project/currentPID_FolDER=/var/run/gunicornPID_file=$PID_FolDER/project.pIDolD_PID_file=$PID_FolDER/project.pID.oldbinstart() {    cd $DEPLOY_PATH && gunicorn run:app -c gunicorn-config.py}stop() {  if [ -f $PID_file ]  then    kill `cat $PID_file`    rm $PID_file  fi}reload() {    kill -USR2 `cat $PID_file`    sleep 1    kill -QUIT `cat $olD_PID_file`    rm $olD_PID_file}start_or_reload() {    if [ -f $PID_file ]    then        reload    else        start    fi}case "" in    start)        echo "Starting server..."        start    ;;    reload)        echo "Reloading server..."        reload    ;;    stop)        echo "StopPing server..."        stop    ;;    restart)        echo "Restarting server..."        stop && sleep 1 && start    ;;    start_or_reload)        echo 'Starting or reloading server...'        start_or_reload    ;;    wup)        echo "Increasing workers..."        kill -TTIN `cat $PID_file`    ;;    wdown)        echo "Decreasing workers..."        kill kill -TTOU `cat $PID_file`    ;;    *)        echo "Usage: $SCRIPT_name {start|reload|stop|restart|start_or_reload|wup|wdown}" >&2        exit 3    ;;esac:
总结

以上是内存溢出为你收集整理的python – 在将当前符号链接切换到新目录后正常重新加载gunicorn全部内容,希望文章能够帮你解决python – 在将当前符号链接切换到新目录后正常重新加载gunicorn所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存