ruby – 当Unicorn主机完成重启时是否可以发送通知?
我在nginx独角兽后面运行一系列Rails / Sinatra应用程序,零停机时间部署.我喜欢这个设置,但Unicorn完成重启需要一段时间,所以我想在完成后发送一些通知. 我可以在Unicorn docs中找到的唯一回调与worker forking有关,但我不认为那些会对此有用. 这就是我从赏金中寻找的东西:旧的独角兽大师启动新的主人,然后启动它的工人,然后旧的主人停止其工人并让新的主人接管.我想在切换完成时执行一些ruby代码. 理想情况下,我不想实现任何复杂的流程监控来执行此操作.如果这是唯一的方式,那就这样吧.但是在我走这条路之前我正在寻找更简单的选择. 最佳答案 我之前已经构建过这个,但它并不完全简单.第一步是添加一个API,返回部署的当前代码版本的git SHA.例如,您部署AAAA.现在您部署BBBB并将返回.例如,假设您添加了返回SHA的api“/ checks / version”. 这是一个用于实现此API的示例Rails控制器.它假设存在capistrano REVISION文件,并在app加载时将当前版本SHA读入内存:
然后,您可以通过API轮询本地独角兽以获取SHA,并等待它更改为新版本. 以下是使用Capistrano的示例,它将正在运行的应用版本SHA与新部署的应用版本SHA进行比较:
您需要调整轮询的超时/重试次数以匹配平均应用启动时间.此示例假定为capistrano结构,其中app为/ data / server / current,端口为8080的本地独角兽. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- amazon-web-services – Elastic Beanstalk Http重定向到Ht
- jquery – NGINX/PHP-FPM:Ajax第一次请求缓慢,下一次请求很
- reactjs – react.js应用程序显示在nginx服务器中找不到404
- 安装passenger和nginx时找不到C编译器gcc
- ruby-on-rails-如何在Puma和Capistrano上部署Rails应用程序
- 从Nginx中的Set-Cookie标头登录值
- python – 为什么使用Nginx运行Flask需要一个WSGI包装器?
- 我可以将Clojure与nginx一起使用吗?
- ruby-on-rails-乘客nginx:在子目录中托管Rails应用程序
- javascript – 服务器渲染在静态网站上反应js
- ssl – 如果存在标头,则Nginx设置proxy_set_head
- ubuntu – 无法安装Composer – php-fpm
- nginx-使用Clojure和Ring的HTTPS请求
- nginx中的动态proxy_pass到Kubernetes中的另一个
- nginx – SPDY是否会改善非SPDY CDN提供的资产交
- linux – 如何在nginx中列出所有vhosts?
- PHP会话不存储/保存-php-fpm / nginx / phpmyadm
- 别名使用Nginx导致phpMyAdmin登录无限循环
- Nginx“ ssl_stapling”被忽略,在OCSP响应程序“
- Nginx重写地址不会自动添加参数