我们正在使用Capistrano/Webistrano(与Lee Hambley的无轨部署宝石)将我们的PHP应用程序推送到生产服务器.我有一些在部署过程的各个部分运行的自定义任务.
作为示例,我有尝试停止并重新启动jetty solr实例的任务.但是,有时在部署期间这个位失败,因此Capistrano回滚整个部署并恢复到之前的版本.这是一种痛苦.:-)
我想告诉Capistrano忽略这些任务的返回结果,所以如果他们失败了,Capistrano就会继续前进并完成部署.事实上,我很容易ssh到服务器并正确地杀死并重新启动solr实例,而不是必须再次完成部署.
以下是部署脚本的一些相关部分:
before "deploy:symlink", :solr_kill
after "deploy:symlink", :solr_start, :solr_index
task :solr_kill do
run "cd #{current_path}/Base ; #{sudo} phing solr-kill"
end
task :solr_start do
run "cd #{current_path}/Base ; #{sudo} phing solr-start"
run "sleep 10"
end
task :solr_index do
run "#{sudo} #{current_path}/Base/Bin/app.php cron run solr_index_cron"
end
Run Code Online (Sandbox Code Playgroud)
chr*_*ton 33
从Capistrano任务文档,如果有错误,可以添加一个配置,继续.
task :solr_start, :on_error => :continue do
# your code here
end
Run Code Online (Sandbox Code Playgroud)
只需将其添加到要忽略错误的每个任务,然后继续.尽管如此,最好的办法是看看你是否可以弄清楚导致失败的原因,并让restart命令更加强大,以便真正重新启动它.我只说这个,因为当你试图将脚本交给其他人时,他们可能不知道如何判断它是否正确重启.
| 归档时间: |
|
| 查看次数: |
11502 次 |
| 最近记录: |