gpt4 book ai didi

python - Tornado 代码部署

转载 作者:太空狗 更新时间:2023-10-29 21:59:00 25 4
gpt4 key购买 nike

基于tornado的web应用部署是否有规范的代码部署策略。我们当前的配置是在 NginX 后面运行 4 个 tornado 进程? (我们的具体用例在 EC2 后面。)

我们目前有一个运行良好的解决方案,我们可以启动四个 Tornado 进程并将 PID 保存到/tmp/中的文件中。部署新代码后,我们通过 fabric 运行以下序列:

  1. 从 prod 分支执行 git pull。
  2. 从负载平衡器中删除机器。
  3. 等待所有航类转机结束后进入休眠状态。
  4. 杀死pid文件中的所有 Tornado 并删除所有*.pyc文件。
  5. 重新启动 Tornado 。
  6. 将机器连接回负载平衡器。

我们从中得到了一些启发:http://agiletesting.blogspot.com/2009/12/deploying-tornado-in-production.html

还有其他完整的解决方案吗?

最佳答案

我们以 supervisord 作为主管运行 Tornado+Nginx。

示例配置(名称已更改)

[program:server]
process_name = server-%(process_num)s
command=/opt/current/vrun.sh /opt/current/app.py --port=%(process_num)s
stdout_logfile=/var/log/server/server.log
stderr_logfile=/var/log/server/server.err
numprocs = 6
numprocs_start = 7000

我还没有找到重启事物的“最佳”方式,我最终可能要做的是让 Nginx 有一个“事件”文件,该文件已更新,让 HAProxy 知道我们正在搞乱配置,然后等待位,交换周围的东西,然后重新启用一切。

我们正在使用 Capistrano(我们有一个积压任务要转移到 Fabric),但我们没有处理删除 *.pyc 文件,而是将/opt/current 符号链接(symbolic link)到发布标识符。

关于python - Tornado 代码部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com