I got resque and resque scheduler up and running on my development environment, but when I deploy to heroku it seems like the scheduler is not doing its job. It stays in delayed and never gets moved to the queue.
Here is my intializer resque.rb
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
Here is my resque.rake file
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"
my video controller create action is doing this
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
I am using a Procfile because it was recommended by heroku for resque.
resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=7 bundle exec rake resque:work