【问题标题】:how to start sidekiq on engineyard如何在engineyard上启动sidekiq
【发布时间】:2013-12-11 22:15:26
【问题描述】:
我正在将 rails3 应用程序从 heroku 转移到 engine yard。我想知道如何在每次部署时在引擎场上启动(或重新启动)sidekiq?要检查 sidekiq 是否正常工作,我 SSH 到 EY 实例并手动启动 sidekiq。我希望从 EY 部署脚本(config/deploy.yml)中处理这个过程。我习惯了 mina 部署和 EC2。
【问题讨论】:
标签:
ruby-on-rails-3
deployment
sidekiq
engineyard
【解决方案1】:
Engine Yard 提供了两种自定义环境的方法。您可以使用custom chef recipes 和deploy hooks。
对于 SideKiq,您需要同时使用两者。您将使用自定义厨师配方来配置和运行 SideKiq,并使用部署挂钩在每次部署新代码时重新启动 SideKiq。
Engine Yard 在http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq 上为 SideKiq 提供了一个预制的自定义厨师食谱示例。示例配方的文档也准确显示了部署挂钩的使用方法。
要使用自定义配方,您首先需要在本地安装引擎场 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 chef recipe 的文档中进行了描述。
重新部署,一切顺利。
如果您遇到任何问题,请在 Engine Yard 支持处提交工单,我们很乐意为您提供帮助。