2014-05-10 8 views
1

resque 및 resque 스케줄러를 내 개발 환경에서 실행 중이지만 heroku에 배포하면 스케줄러가 작업을 수행하지 않는 것처럼 보입니다. 지연된 상태로 유지되고 대기열로 이동하지 않습니다. 여기 Resque Scheduler가 대기열로 보내지 만 처리하지 않습니다.

require "resque/tasks" 
require 'resque_scheduler/tasks' 

task "resque:setup" => :environment do 
    ENV['QUEUE'] = '*' 
    require 'resque_scheduler' 
end 

desc "Alias for resque:work (To run workers on Heroku)" 
task "jobs:work" => "resque:work" 

내 비디오 컨트롤러

행동은 내가 사용이

def create 
    @video = current_user.videos.build(video_params) 
    if @video.save 
     if @video.emailfans == true 
     Resque.enqueue_at(10.seconds.from_now, NewvideoNotify, @video.id) 
     end 
     redirect_to @video, notice: 'Video was successfully Posted!' 
    else 
     render action: 'new' 
    end 
    end 

을하고 만들 여기

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

require 'resque_scheduler' 
require 'resque_scheduler/server' 

Resque::Server.use(Rack::Auth::Basic) do |user, password| 
    password == "Mysecret" 
end 

내 resque.rake 파일 내 intializer의 resque.rb입니다 heroku에서 resque를 권장했기 때문에 Procfile.

resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=7 bundle exec rake resque:work 

답변

4

와우가이 문제를 해결했습니다.

내가했던

scheduler: bundle exec rake resque:scheduler 

마지막 내 스케줄러에 다이노를 확장되었다 나는 또한 내 프로필이 추가이

require "resque/tasks" 
require 'resque_scheduler/tasks' 

task "resque:setup" => :environment do 
    ENV['QUEUE'] = '*' 
end 

task "resque:scheduler_setup" => :environment 

desc "Alias for resque:work (To run workers on Heroku)" 
task "jobs:work" => "resque:work" 

내 resque.rake 파일을 변경

heroku ps:scale scheduler=1 
+0

정말로 작은 도움에 감사드립니다. 나는 또 다른 질문이있다. before_perform/before_enqueue가 작동합니까? – Faz

+0

어떻게 procfile을 설정 했습니까? http://stackoverflow.com/questions/41537142/heroku-procfile-resque-puma-rails-5-resque-scheduler-setup –