From b4d3d217e12f147b2be7c67d0d78d727b30a45ef Mon Sep 17 00:00:00 2001 From: Bruno Nocera Zanette <bnzanette@inf.ufpr.br> Date: Fri, 18 Sep 2015 15:44:38 -0300 Subject: [PATCH] Add Resque Support * For it to work, it depends on Redis server is running. - To install: '$ apt-get install redis-server' - To execute: '$ redis-server' * To add new worker's tasks: - Create a new class, with the template below: class SampleWorker @queue = :sample_work def self.perform(params) end end - Enqueue new jobs: Resque.enqueue(SampleWorker, params) * To monitor jobs' status, access: '<rails_server>/resque' --- Gemfile | 3 +++ config/initializers/resque.rb | 15 +++++++++++++++ config/resque.yml | 7 +++++++ config/routes.rb | 2 ++ lib/tasks/resque.rake | 3 +++ 5 files changed, 30 insertions(+) create mode 100644 config/initializers/resque.rb create mode 100644 config/resque.yml create mode 100644 lib/tasks/resque.rake diff --git a/Gemfile b/Gemfile index 5463bba4..0a3b93f7 100644 --- a/Gemfile +++ b/Gemfile @@ -95,3 +95,6 @@ gem 'bullet' # docs gem 'rdoc' + +# Resque +gem 'resque', require: 'resque/server' diff --git a/config/initializers/resque.rb b/config/initializers/resque.rb new file mode 100644 index 00000000..f02b60ff --- /dev/null +++ b/config/initializers/resque.rb @@ -0,0 +1,15 @@ +require 'yaml' + +def set_resque_config(host) + Resque.redis = host +end + +if Rails.env.production? + set_orientdb_config ENV['PORTALMEC_RESQUE_HOST'] +else + # connect to Resque/Redis server + resque_configs = YAML.load_file Rails.root.join('config').to_s.concat('/resque.yml') + config = resque_configs.fetch(Rails.env) + + set_resque_config config['host'] +end diff --git a/config/resque.yml b/config/resque.yml new file mode 100644 index 00000000..1902a2ce --- /dev/null +++ b/config/resque.yml @@ -0,0 +1,7 @@ +development: &development + host: localhost + port: 2480 + +test: + host: mecdb1.c3sl.ufpr.br + port: 2480 diff --git a/config/routes.rb b/config/routes.rb index 9445e45c..5f6bb9ea 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -32,4 +32,6 @@ Rails.application.routes.draw do get '/contact' => 'welcome#contact', as: 'contact' get '/complaint' => 'welcome#complaint', as: 'complaint' get '/search' => 'search/solr#search', as: 'search' + + mount Resque::Server, :at => "/resque" end diff --git a/lib/tasks/resque.rake b/lib/tasks/resque.rake new file mode 100644 index 00000000..4c093c8a --- /dev/null +++ b/lib/tasks/resque.rake @@ -0,0 +1,3 @@ +require "resque/tasks" + +task "resque:setup" => :environment -- GitLab