ruby – 如何在Capistrano中为不同的角色定义相同的任务?
发布时间:2020-12-16 21:53:13 所属栏目:百科 来源:网络整理
导读:我正在使用Capistrano来处理我的部署,我的设置有两个不同的角色:Web和:处理.他们都具有通常的部署任务,但是对于两种类型的服务器,重启任务需要不同. 所以我的第一次尝试是这样的: task :restart,:roles = :web do run "... web related restart stuff ...
我正在使用Capistrano来处理我的部署,我的设置有两个不同的角色:Web和:处理.他们都具有通常的部署任务,但是对于两种类型的服务器,重启任务需要不同.
所以我的第一次尝试是这样的: task :restart,:roles => :web do run "... web related restart stuff ..." end task :restart,:roles => :processing do run "... processing related restart stuff ..." end 哪个不起作用,因为第二个:restart(for:processing role)替换第一个:restart(对于:web角色),而web:restart不会发生. 我快速浏览一下,看看是否可以根据服务器在运行任务时可能处于哪个角色(或角色)来编写条件代码,但是没有任何文档在那里.有任何想法吗? 解决方法
你应该使用命名空间:
namespace :web do desc "Restart web servers" task :restart,:roles => :web do # Restart Magic Here end end namespace :process do desc "Restart process servers" task :restart,:roles => :process do # Restart magic here end end # Optionally: task :restart do web.restart process.restart end 这就是你想要的,我想! 另外,要在命令行上使用这些,你可以使用 $cap <stage> # (if using multistage) $cap web:restart # Restarts web servers $cap process:restart # Restarts process servers $cap restart # Restarts both process and web servers (来源:我是Capistrano维护者.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Flex3与java BlazeDS入门教程及其配置详解
- React/React Native 的ES5 ES6写法对照表
- PostgreSQL启动过程中的那些事十八:bgwriter进程二
- flex调用webservices查询中国城市天气返回的是数组类型
- 使用正则表达式和JavaScript将HTTP URL重写为HTTPS
- c# – 用于批量获取数据的IQueryable扩展方法
- IVY throws IOException Resetting to invalid mark原因及解
- c# – 实体框架6 – 仅使用引用不同表的主键的表
- c# – 使用静态方法与对象方法
- objective-c – 如何打印应用程序的路径?