我们正在使用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) capistrano ×1