GitHub的家伙们最近发布了他们的使用Redis的后台处理应用程序:http : //github.com/defunkt/resque http://github.com/blog/542-introducing- resque
我让它在本地运行,但是我正在努力使其投入生产。有没有人得到:
谢谢!
附言:我在Github上发布了一个与此有关的问题,但尚未回复。希望有一些SO专家可以对此有所帮助,因为我在部署方面经验不足。谢谢!
Garrett的回答确实有所帮助,只是想发布更多细节。为了解决这个问题花了很多时间。
我也在用乘客,但用的是Nginx而不是Apache。
首先,不要忘了您需要安装sinatra,这使我感到有些困惑。 sudo gem install sinatra
sudo gem install sinatra
然后,您需要为要运行的东西创建一个目录,并且它必须具有公共和tmp文件夹。它们可以是空的,但问题是git不会在存储库中保存空目录。该目录中必须至少包含一个文件,因此我制作了一些垃圾文件作为占位符。这是git中的怪异功能/错误。
我使用的是resque插件,因此我在那里建立了目录(默认的config.ru在其中)。看起来Garrett在他的rails_root中建立了一个新的“ resque”目录。任一个应该起作用。为了我…
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,使其看起来像这样:
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为想要用来保护应用程序的密码。
ADD_SOME_PASSWORD_HERE
最后,我正在使用Nginx,所以这是我添加到我的nginx.conf中的内容
server { listen 80; server_name resque.seoaholic.com; root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public; passenger_enabled on; }
因此,它会在您的部署中重新启动,可能在deploy.rb中是这样的
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
我不太确定这是否是最好的方法,我以前从未设置过机架/ sinatra应用程序。但这有效。
这只是为了使监视应用程序继续运行。接下来,我需要找出神的部分。