GitHub最近发布了使用Redis的后台处理应用程序:http : //github.com/defunkt/resque http://github.com/blog/542-introducing-resque
我让它在本地工作,但我很难让它在生产中工作.有没有人得到:
Capistrano配方部署工人(控制工人数量,重新启动工作人员等)
部署工作人员将机器与主应用程序运行的位置分开,这里需要哪些设置?
得到redis在服务器上重启(我尝试将它放入cron但没有运气)
你是如何在你的部署中使用resque-web(他们出色的监控应用程序)的?
谢谢!
PS我在Github上发布了一个关于此的问题,但尚无回复.希望一些SO大师可以帮助解决这个问题,因为我在部署方面不是很有经验.谢谢!
我参加派对有点晚了,但我想发布一些对我有用的东西.基本上,我有神设置来监控redis和resque.如果它们不再运行,上帝就会重新启动它们.然后,我有一个rake任务,在一个退出我的resque worker的capistrano部署之后运行.一旦工人退出,上帝将启动新员工,以便他们运行最新的代码库.
以下是我在生产中如何使用resque的完整文章:
http://thomasmango.com/2010/05/27/resque-in-production
我昨晚才想到这一点,因为Capistrano你应该使用san_juan,然后我喜欢使用上帝来管理工人的部署.至于幸存重启,我不确定,但我每6个月重启一次,所以我不太担心.
虽然他提出了不同的启动方法,但这对我来说最容易实现.(在deploy.rb中)
require 'san_juan' after "deploy:symlink", "god:app:reload" after "deploy:symlink", "god:app:start"
为了管理它在哪里运行,在另一台服务器上等,他在那里的配置部分介绍了它README
.
我在我的切片上使用Passenger,所以它相对容易,我只需要一个config.ru
这样的文件:
require 'resque/server' run Rack::URLMap.new \ "/" => Resque::Server.new
对于我的VirtualHost文件,我有:
ServerName resque.server.com DocumentRoot /var/www/server.com/current/resque/public AuthType Basic AuthName "Resque Workers" AuthUserFile /var/www/server.com/current/resque/.htpasswd Require valid-user
另外,快速说明.确保你在resque:setup
rake任务之外,它将为你节省大量的时间来与上帝产生新的工人.
我遇到了很多麻烦,所以如果您需要更多帮助,请发表评论.