Class: Fanforce::Worker
- Inherits:
-
Object
show all
- Defined in:
- lib/fanforce/worker.rb,
lib/fanforce/worker/worker.rb,
lib/fanforce/worker/version.rb
Defined Under Namespace
Modules: Utils
Classes: Error, ErrorList, Errors, Runner
Constant Summary
collapse
- LOADED_AT =
Time.now
- VERSION =
'0.36.0'
- @@iron =
{}
- @@redis =
{}
- @@log =
Logger.new($stdout)
Class Method Summary
collapse
Class Method Details
.enqueue(queue_id, params, options = {}) ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/fanforce/worker/worker.rb', line 38
def self.enqueue(queue_id, params, options={})
raise 'Params being sent to the queue must be a Hash' if !params.is_a?(Hash)
queue_id = Utils.iron_queue_id(queue_id)
retries = (options[:retries].present?) ? options.delete(:retries) : 0
iron_mq.queue(queue_id).post({params: params, retries: retries}.to_json, options)
end
|
.iron_mq ⇒ Object
17
18
19
20
|
# File 'lib/fanforce/worker/worker.rb', line 17
def self.iron_mq
require 'iron_mq'
@@iron[:mq] ||= IronMQ::Client.new(:token => @@iron[:token], :project_id => @@iron[:project_id])
end
|
.iron_project_id ⇒ Object
13
14
15
|
# File 'lib/fanforce/worker/worker.rb', line 13
def self.iron_project_id
@@iron[:project_id] || ENV['IRON_PROJECT_ID']
end
|
.iron_token ⇒ Object
9
10
11
|
# File 'lib/fanforce/worker/worker.rb', line 9
def self.iron_token
@@iron[:token] || ENV['IRON_TOKEN']
end
|
.log ⇒ Object
32
33
34
|
# File 'lib/fanforce/worker/worker.rb', line 32
def self.log
@@log
end
|
.redis_url_errorlog ⇒ Object
22
23
24
|
# File 'lib/fanforce/worker/worker.rb', line 22
def self.redis_url_errorlog
@@redis[:url_errorlog] || ENV['REDIS_URL_ERRORLOG'] || (raise 'No REDIS_URL_ERRORLOG found in ENV')
end
|
.run(worker_data, min_execution_time = 300, &code_block) ⇒ Object
46
47
48
49
|
# File 'lib/fanforce/worker/worker.rb', line 46
def self.run(worker_data, min_execution_time=300, &code_block)
require_relative 'runner'
Runner.new(worker_data, min_execution_time, &code_block)
end
|
.set_config(obj) ⇒ Object
26
27
28
29
30
|
# File 'lib/fanforce/worker/worker.rb', line 26
def self.set_config(obj)
@@iron[:token] = obj[:iron_token] if obj[:iron_token]
@@iron[:project_id] = obj[:iron_project_id] if obj[:iron_project_id]
@@redis[:url_errorlog] = obj[:redis_url_errorlog] if obj[:redis_url_errorlog]
end
|