Ciao lista,
sto usando le seguenti gemme:
- resque (1.25.2)
- resque-scheduler (2.5.5)
e sto provando ad specificare un namespace in un’applicazione rails 4.
Ho configurato il config.ru seguendo le indicazioni presenti in questo
post
in modo da proteggere la parte resque-web utilizzando Devise.
Il file .Rakefile è il seguente:
require File.expand_path(‘…/config/application’, FILE)
MyApp::Application.load_tasks
require ‘resque/tasks’
require ‘resque_scheduler/tasks’
task ‘resque:setup’ => :environment do
ENV[‘QUEUE’] ||= ‘*’
ENV[‘RESQUE_NAMESPACE’] ||= ‘resque:MyApp’
Resque.before_fork = Proc.new {
ActiveRecord::Base.establish_connection }
Resque.redis.namespace = ENV[‘RESQUE_NAMESPACE’]
end
namespace :resque do
task :setup do
require ‘resque’
require ‘resque-scheduler’
# you probably already have this somewhere
ENV['OPENREDIS_URL'] ||= 'redis://127.0.0.1:6379'
uri = URI.parse(ENV['OPENREDIS_URL'])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port,
:password => uri.password)
Resque::Scheduler.configure do |c|
c.verbose = true
c.logfile = nil # meaning all messages go to $stdout
c.logformat = ‘text’
c.dynamic = true
end
Resque.logger.formatter = Resque::VeryVerboseFormatter.new
Resque.redis = ‘localhost:6379’
require 'workable'
end
end
e avvio lo scheduler con
rake resque:scheduler --trace
e i worker con
COUNT=2 rake resque:workers --trace
vedo lo scheduler girare correttamente ed alimentare la coda e i worker
scodare i job ed elaborarli
eppure via web non vedo niente sotto il tab scheduler e sotto quello
scheduler.
Ho provato a passare nel config.ru il namespace cosi:
/config.ru
This file is used by Rack-based servers to start the application.
require ::File.expand_path(‘…/config/environment’, FILE)
require ‘resque/server’
require ‘resque_scheduler/server’
map ‘/’ do
run Rails.application
end
map ‘/resque’ do
#This is the important line
use RailsEnvConfigMiddleware
use ActionDispatch::Session::CookieStore, :key =>
MyApp::Application.config.session_options[:key],
:path => ‘/’, :secret => MyApp::Application.config.secret_key_base
use Warden::Manager do |manager|
manager.failure_app = MyApp::Application
manager.default_scope = Devise.default_scope
end
ENV[‘OPENREDIS_URL’] ||= ‘redis://127.0.0.1:6379’
uri = URI.parse(ENV[‘OPENREDIS_URL’])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port,
:password => uri.password)
Rails.logger.info(‘Connected to Redis’)
RESQUE_NAMESPACE = ‘resque:MyApp’
Resque.redis.namespace = RESQUE_NAMESPACE
run AdminResqueServer.new
end
ma non è servito a nulla.
Senza utilizzare namespace invece tutto funziona correttamente.
Qualche suggerimento? Dove sto sbagliando?
Grazie in anticipo