Sha256: 75f225645b2b92d27f5efe68cfea6d180652e81b4d5f9b6dcfdd28dbfbc6596e
Contents?: true
Size: 1.36 KB
Versions: 4
Compression:
Stored size: 1.36 KB
Contents
require "rest-client" require "json" require "multi_json" require File.dirname(__FILE__) + '/base' module WorkerArmy class Client < Base class << self 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 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 end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
worker-army-0.6.2 | lib/worker_army/client.rb |
worker-army-0.6.1 | lib/worker_army/client.rb |
worker-army-0.6.0 | lib/worker_army/client.rb |
worker-army-0.5.0 | lib/worker_army/client.rb |