class SimpleMapReduce::Worker::RegisterMapTaskWorker

Constants

HTTP_MSGPACK_HEADER

Public Instance Methods

perform(job) click to toggle source
# File lib/simple_map_reduce/worker/register_map_task_worker.rb, line 6
def perform(job)
  logger.info('register map task worker start!')
  client = http_client(job.map_worker.url)
  response = client.post do |request|
    request.url('/map_tasks')
    request.body = job.serialize
  end
  logger.debug(response.body)
rescue => e
  logger.error(e.inspect)
  logger.error(e.backtrace.take(50))
  SimpleMapReduce::Server::JobTracker.store_worker(job.map_worker)
  job.failed!
end

Private Instance Methods

http_client(url) click to toggle source
# File lib/simple_map_reduce/worker/register_map_task_worker.rb, line 28
def http_client(url)
  ::Faraday.new(
    url: url,
    headers: HTTP_MSGPACK_HEADER,
    request: {
      open_timeout: 10,
      timeout: 15
    }
  ) do |faraday|
    faraday.response :logger
    faraday.response :raise_error
    faraday.adapter  Faraday.default_adapter
  end
end
logger() click to toggle source
# File lib/simple_map_reduce/worker/register_map_task_worker.rb, line 43
def logger
  SimpleMapReduce.logger
end