Class: WorkerArmy::Client
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Methods inherited from Base
#callback_retry_count, client_retry_count, config, #worker_retry_count
Class Method Details
.push_job(job_class, data = {}, callback_url = nil, queue_prefix = 'queue', retry_count = 0) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/worker_army/client.rb', line 9 def push_job(job_class, data = {}, callback_url = nil, queue_prefix = 'queue', retry_count = 0) raise "No data" unless data raise "No job class provided" unless job_class @config = self.config worker_army_base_url = @config['endpoint'] callback_url = "#{worker_army_base_url}/generic_callback" unless callback_url response = nil begin response = RestClient.post "#{worker_army_base_url}/jobs", data.merge( job_class: job_class, callback_url: "#{worker_army_base_url}/callback?callback_url=#{callback_url}", queue_prefix: queue_prefix ).to_json, :content_type => :json, :accept => :json rescue => e puts "Failed! Retrying (#{retry_count})..." retry_count += 1 if retry_count < client_retry_count(@config) sleep (retry_count * 2) push_job(job_class, data, callback_url, queue_prefix, retry_count) end end if response and response.body and response.code == 200 hash = JSON.parse(response.body) hash.merge('success' => true) else { 'success' => false } end end |