使用Capistrano运行同步或异步任务

时间:2013-03-22 18:47:00

标签: ruby-on-rails ruby-on-rails-3 deployment asynchronous capistrano

我的deploy.rb中有一些长时间重启的进程,如:

  • rake assets:precompile
  • script/delayed_job restart
  • rake sunspot:solr:stoprake sunspot:solr:start

所有这些过程都必须发生,但不一定是一个接一个。

我想知道我是否可以同时运行assets:precompiledelayed_job restart,因为它们不需要一个接一个地发生,我可以通过异步执行来加快部署时间。

我已经进行了一些谷歌搜索,但我找不到任何相关内容。

1 个答案:

答案 0 :(得分:0)

这不是capistrano支持的功能。

我一直在寻找解决方案并在Capistrano google groups找到了一些东西。建议使用Capistrano运行ruby脚本,使用Ruby自己的线程支持并行运行作业。

如果您阅读帖子,其中一位作者确实会问为什么这些任务需要并行运行,因为您可能会引入竞争条件和其他非确定性行为,从而导致部署过程变得更加脆弱。