Class: Sqspoller::WorkerTask

Inherits:
Object
  • Object
show all
Defined in:
lib/sqspoller/worker_task.rb

Constant Summary collapse

HEADERS =
{
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

Instance Method Summary collapse

Constructor Details

#initialize(worker_configuration, logger_file) ⇒ WorkerTask

Returns a new instance of WorkerTask.



17
18
19
20
21
22
23
# File 'lib/sqspoller/worker_task.rb', line 17

def initialize(worker_configuration, logger_file)
  @logger = Logger.new(logger_file)
  @http_method = worker_configuration[:http_method]
  @http_url = worker_configuration[:http_url]
  @timeout = worker_configuration[:timeout] ? worker_configuration[:timeout].to_i : 450
  @uri = URI(@http_url)
end

Instance Method Details

#process(message, message_id) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/sqspoller/worker_task.rb', line 25

def process(message, message_id)
  parsed_message = JSON.parse(message)

  if @http_method.downcase == "post"
    RestClient::Request.execute(:method => :post, :url => @http_url, :payload => parsed_message.to_json, :headers => HEADERS,  :timeout => @timeout, :open_timeout => 5) do |response, request, result|
      process_http_response response
    end
  elsif @http_method.downcase == "get"
    RestClient::Request.execute(:method => :get, :url => @http_url, :payload => parsed_message.to_json, :headers => HEADERS,  :timeout => @timeout, :open_timeout => 5) do |response, request, result|
      process_http_response response
    end
  else
    raise "Invalid http_method provided. #{http_method}"
  end
end

#process_http_response(response) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/sqspoller/worker_task.rb', line 41

def process_http_response(response)
  case response.code
  when 200
    return "OK"
  else
    raise "Service did not return 200 OK response. #{response.code}"
  end
end