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