Sha256: 17ca087e3ca0d618fc1fd9560b36415bf3540bc52db060fefde07a7107c0ffae

Contents?: true

Size: 1.51 KB

Versions: 14

Compression:

Stored size: 1.51 KB

Contents

require "logger"
require "concurrent"
require "net/http"
require "rest-client"
require "json"

module Sqspoller


  class WorkerTask

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

    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

    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

    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
  end

end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
fourkites-sqspoller-0.1.12.29 lib/sqspoller/worker_task.rb
nitin-fourkites-sqspoller-0.1.12.32 lib/sqspoller/worker_task.rb
nitin-fourkites-sqspoller-0.1.12.31 lib/sqspoller/worker_task.rb
nitin-fourkites-sqspoller-0.1.12.30 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.28 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.27 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.26 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.25 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.24 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.23 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.22 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.21 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.20 lib/sqspoller/worker_task.rb
fourkites-sqspoller-0.1.12.19 lib/sqspoller/worker_task.rb