class SimpleMapReduce::Server::JobWorker
Attributes
worker[R]
worker_id[R]
Public Class Methods
check_s3_access()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 78 def check_s3_access s3_client.list_buckets logger.info('[OK] s3 connection test') end
http_client()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 102 def http_client @http_client ||= ::Faraday.new( url: SimpleMapReduce.job_tracker_url, headers: { 'Accept' => 'application/json', 'Content-Type' => 'application/json' } ) do |faraday| faraday.response :raise_error faraday.adapter Faraday.default_adapter end end
job_manager()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 98 def job_manager @job_manager ||= ::Rasteira::EmbedWorker::Manager.run end
logger()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 119 def logger SimpleMapReduce.logger end
quit!()
click to toggle source
@override `Sinatra::Base#quit!` github.com/sinatra/sinatra/blob/2e980f3534b680fbd79d7ec39552b4afb7675d6c/lib/sinatra/base.rb#L1483-L1491
Calls superclass method
# File lib/simple_map_reduce/server/job_worker.rb, line 125 def quit! job_manager&.shutdown_workers! super end
register_myself_to_job_tracker()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 83 def register_myself_to_job_tracker response = http_client.post do |request| request.url('/workers') request.body = { url: SimpleMapReduce.job_worker_url }.to_json end body = JSON.parse(response.body, symbolize_names: true) @worker_id = body[:id] @worker = SimpleMapReduce::Server::Worker.new( id: @worker_id, url: SimpleMapReduce.job_worker_url ) logger.info("[OK] registering this worker to the job_tracker #{SimpleMapReduce.job_worker_url}") end
s3_client()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 115 def s3_client SimpleMapReduce::S3Client.instance.client end
setup_worker()
click to toggle source
# File lib/simple_map_reduce/server/job_worker.rb, line 68 def setup_worker check_s3_access register_myself_to_job_tracker job_manager logger.info('All setup process is done successfully. This worker is operation ready.') logger.info("This job worker url: #{SimpleMapReduce.job_worker_url}, id: #{worker_id}") logger.info("This job worker status url: #{SimpleMapReduce.job_worker_url}/workers/#{worker_id}") logger.info("The job tracker url: #{SimpleMapReduce.job_tracker_url}") end