如何部署resque工人的生产?
-
20-09-2019 - |
题
该审查们最近释放他们的背景下处理应用程序,它使用节点:http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque
我有工作地,但我在努力得到它的工作中产生。有人有一个:
- Capistrano配方的部署工作人员(控制的工人数量,重新启动他们,等等)
- 部署工人向独立机(s)从主要的应用程序正在运行,什么样的设置,需要在这里?
- 到了穿红衣的生存的一个重启服务器上(我试着将它放在cron但没有运气)
- 你怎么工作resque-网络(他们优秀的监测程序)进入你的部署?
谢谢!
P.S.我发布了一个问题。关于这一点,但没有响应。希望一些所以宗师就可以帮助在这一个为我不是非常有经验的部署。谢谢你!
解决方案 3
Garrett的答案真的帮助,只是想发表一些更多的详细信息。我花了很多的修补获得正确的...
我用乘客,但是服务而不是apache.
首先,不要忘了,你需要安装*西纳特拉这把我的一段时间。sudo gem install sinatra
然后你需要做一个目录的事情来运行,它拥有一个公共和tmp文件夹。他们可以是空的,但问题是那混帐就不会节省一个空的目录的回购。目录已经有至少一个文件在这,所以我做了一些垃圾文件作为占位符。这是一个奇怪的特点/缺陷在饭桶。
我使用的resque插件,所以我做了目录中没有的(其中默认config.ru 是)。它看起来像加勒出一个新的'resque录在他的rails_root.或者一个应该的工作。对我来说...
cd MY_RAILS_APP/vendor/plugins/resque/
mkdir public
mkdir tmp
touch public/placeholder.txt
touch tmp/placeholder.txt
然后我的编辑 MY_RAILS_APP/vendor/plugins/resque/config.ru
因此它看起来像这样:
#!/usr/bin/env ruby
require 'logger'
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'resque/server'
use Rack::ShowExceptions
# Set the AUTH env variable to your basic auth password to protect Resque.
AUTH_PASSWORD = "ADD_SOME_PASSWORD_HERE"
if AUTH_PASSWORD
Resque::Server.use Rack::Auth::Basic do |username, password|
password == AUTH_PASSWORD
end
end
run Resque::Server.new
不要忘记改变 ADD_SOME_PASSWORD_HERE
密码你要用于保护应用程序。
最后,我使用的服务,所以这里就是我加入到我的服务.conf
server {
listen 80;
server_name resque.seoaholic.com;
root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public;
passenger_enabled on;
}
因此它被重新启动您的部署,可能像这样的东西在你的部署。rb
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
我真的不知道如果这是最好的方式,我从来没有设置架/*西纳特拉的应用程序之前。但它的工作。
这只是得到监控程序,会。接下来,我需要找出神的一部分。
其他提示
我晚一点到的缔约方,但是认为我会后什么为我工作。基本上,我有上帝安装监视节点和resque.如果他们不是跑了,上帝开始他们回来了。然后,我有一耙任务,得到运行后capistrano部署,退出我的resque工人。一旦工人退出,上帝将开始新的工人,以便他们正在运行的最新代码。
这里是我的完整书面记录的我如何使用resque的生产:
我只是想这个昨天晚上,翰,你应该使用 san_juan, 然后我喜欢用 上帝 管理部署人员。作为幸存的重新启动,我不知道,但是我重新启动每6个月所以我不太担心。
虽然他建议不同方式的开始,这是什么工作最简单的我。(内部署。rb)
require 'san_juan'
after "deploy:symlink", "god:app:reload"
after "deploy:symlink", "god:app:start"
来管理它在哪里运行,在另一台服务器,等等,他介绍了在 构成部分 的 README
.
我用乘客在我的片,使它比较容易的,我只是需要有一个 config.ru
文件像这样:
require 'resque/server'
run Rack::URLMap.new \
"/" => Resque::Server.new
我的虚拟主机文件,我有:
<VirtualHost *:80>
ServerName resque.server.com
DocumentRoot /var/www/server.com/current/resque/public
<Location />
AuthType Basic
AuthName "Resque Workers"
AuthUserFile /var/www/server.com/current/resque/.htpasswd
Require valid-user
</Location>
</VirtualHost>
此外,一个快速的注意。确保你在此改变的 resque:setup
瑞克的任务,它将节省很多时间产生的新的工作人员与上帝。
我遇到了一个很麻烦,所以如果你需要任何帮助,只是发表评论。
使用这些步骤,而不是使结构与网络服务器平和编辑插件:
#The steps need to be performed to use resque-web with in your application
#In routes.rb
ApplicationName::Application.routes.draw do
resources :some_controller_name
mount Resque::Server, :at=> "/resque"
end
#That's it now you can access it from within your application i.e
#http://localhost:3000/resque
#To be insured that that Resque::Server is loaded add its requirement condition in Gemfile
gem 'resque', :require=>"resque/server"
#To add basic http authentication add resque_auth.rb file in initializers folder and add these lines for the security
Resque::Server.use(Rack::Auth::Basic) do |user, password|
password == "secret"
end
#That's It !!!!! :)
#Thanks to Ryan from RailsCasts for this valuable information.
#http://railscasts.com/episodes/271-resque?autoplay=true