我正在将 rails3 应用程序从 heroku 转移到 engine yard。我想知道如何在每次部署时在引擎场上启动(或重新启动)sidekiq?要检查 sidekiq 是否正常工作,我 SSH 到 EY 实例并手动启动 sidekiq。我希望从 EY 部署脚本(config/deploy.yml)中处理这个过程。我习惯于部署和 EC2。
1 回答
Engine Yard 提供了两种自定义环境的方法。您可以使用自定义厨师食谱,并部署挂钩。
对于 SideKiq,您需要同时使用这两种方法。您将使用自定义厨师配方来配置和运行 SideKiq,并在每次部署新代码时使用部署挂钩重新启动 SideKiq。
Engine Yard 在http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq上为 SideKiq 提供了一个预制的自定义厨师食谱示例。示例配方的文档也准确地显示了部署挂钩的用途。
要使用自定义配方,您首先需要在本地安装 engine yard gem ( gem install engineyard
)。然后,您将使用git clone git@github.com:engineyard/ey-cloud-recipes.git
.
克隆存储库后,您需要添加require_recipe 'sidekiq'
到 ./ey-cloud-recipes/cookbooks/main/recipes/default.rb,然后按照文档中的说明修改 sidekiq 配方。
一切完成后,您可以运行ey recipes upload
,然后ey recipes apply
将配方应用到您的环境中。您可能需要指定一些命令行选项,具体取决于 EY gem 是否可以猜测您尝试将配方应用到哪个应用程序和环境。ey 命令的输出应该为您提供执行此操作所需的信息。
应用配方后,您将需要在应用程序所在的 git 存储库中创建它们部署挂钩。在存储库的根目录中创建一个“部署”目录并添加 after_restart.rb 部署挂钩,如sidekiq 厨师食谱的文档。
重新部署,你应该很高兴。
如果您遇到任何问题,请在 Engine Yard 的支持部门提交工单,我们将很乐意为您提供帮助。