2012-06-10 5 views
0

J'ai essayé de comprendre quel est le problème depuis quelques jours maintenant mais pas de chance, je cours Rails 3.1.3 sur Heroku Cedar avec Unicorn et en utilisant Resque 1.20 pour les travaux d'arrière-plan.Resque sur Heroku Cedar ne fonctionne pas

Redis add-on été ajouté et le jeu de REDISTOGO_URL, je initialiseur resque.rb comme

require 'resque' 
Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection } 

uri = URI.parse(ENV["REDISTOGO_URL"]) 
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 
Resque.redis = REDIS 

J'ai aussi essayé

Resque.redis = Redis.connect(:url => ENV['REDISTOGO_URL']) 

également ce, à partir du site RedisToGo officiel

ENV["REDISTOGO_URL"] ||= "redis://username:[email protected]:1234/" 

uri = URI.parse(ENV["REDISTOGO_URL"]) 
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password,  :thread_safe => true) 

Employé de Heroku comme:

bundle exec rake resque:work QUEUE='*' 

Tout fonctionne correctement localement et dans la console Heroku; mais lorsque je tente de faire la queue des rails

Resque.enqueue(EmailQueue, id) 

Je reçois

NoMethodError (undefined method `sadd' for nil:NilClass): 

S'il vous plaît toute aide sera appréciée, je vous remercie.

Répondre

2

Je l'ai compris, puisque j'étais sur Unicorn; J'ai dû configurer config/unicorn.rb comme ci-dessous pour se connecter ou Redis.

Espère que cela aidera quelqu'un d'autre.

+0

Merci, c'était la solution pour moi après les heures! – Elliot

Questions connexes