2013-12-11 24 views
0

我正在将一个rails3应用程序从heroku转移到engine yard。我想知道如何在每个部署的发动机工作场所启动(或重启)sidekiq?要检查sidekiq正在工作,我ssh到EY实例并手动启动sidekiq。我希望从EY部署脚本(config/deploy.yml)处理此进程。我习惯了米娜部署和EC2。如何在engineyard上启动sidekiq

回答

6

Engine Yard提供了两种自定义环境的方法。您可以使用custom chef recipesdeploy hooks

对于SideKiq,您会希望使用两者。您将使用自定义厨师配方来配置和运行SideKiq,并且每​​次部署新代码时都会使用部署挂钩重新启动SideKiq。

Engine Yard在http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq上为SideKiq提供了一个预制的自定义厨师配方。示例配方中的文档也准确显示了您的部署钩子的用途。

要使用自定义配方,您首先需要在本地安装引擎代码gem(gem install engineyard)。然后,您将使用git clone [email protected]: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存储库中部署钩子。在存储库的根目录创建一个'deploy'目录并添加after_restart.rb deploy hook如在sidekiq厨师食谱的文档中所述。

重新部署,你应该很好去。

如果您遇到任何问题,请在Engine Yard的支持下发票,我们很乐意为您提供帮助。

+0

我按http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq中的规定执行。我在主配方中进行了修改,并添加了指定的钩子。我的食谱确实上传,但他们没有得到应用。我收到一个错误。已经在EY支持中添加了一张票。当我得到解决方案时将更新答案。谢谢。 –