该审查们最近释放他们的背景下处理应用程序,它使用节点:http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque

我有工作地,但我在努力得到它的工作中产生。有人有一个:

  1. Capistrano配方的部署工作人员(控制的工人数量,重新启动他们,等等)
  2. 部署工人向独立机(s)从主要的应用程序正在运行,什么样的设置,需要在这里?
  3. 到了穿红衣的生存的一个重启服务器上(我试着将它放在cron但没有运气)
  4. 你怎么工作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的生产:

http://thomasmango.com/2010/05/27/resque-in-production

我只是想这个昨天晚上,翰,你应该使用 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 

https://gist.github.com/1060167

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top