Class: SimpleMapReduce::Server::JobWorker
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- SimpleMapReduce::Server::JobWorker
- Defined in:
- lib/simple_map_reduce/server/job_worker.rb
Class Attribute Summary collapse
-
.worker_id ⇒ Object
Returns the value of attribute worker_id.
Class Method Summary collapse
- .check_s3_access ⇒ Object
- .http_client ⇒ Object
- .job_manager ⇒ Object
- .logger ⇒ Object
- .quit! ⇒ Object
- .register_myself_to_job_tracker ⇒ Object
- .s3_client ⇒ Object
- .setup_worker ⇒ Object
Class Attribute Details
.worker_id ⇒ Object
Returns the value of attribute worker_id.
36 37 38 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 36 def worker_id @worker_id end |
Class Method Details
.check_s3_access ⇒ Object
47 48 49 50 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 47 def check_s3_access s3_client.list_buckets logger.info('[OK] s3 connection test') end |
.http_client ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 67 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 ⇒ Object
63 64 65 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 63 def job_manager @job_manager ||= ::Rasteira::EmbedWorker::Manager.run end |
.logger ⇒ Object
84 85 86 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 84 def logger SimpleMapReduce.logger end |
.quit! ⇒ Object
89 90 91 92 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 89 def quit! job_manager.shutdown_workers! super end |
.register_myself_to_job_tracker ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 52 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) self.worker_id = body[:id] logger.info("[OK] registering this worker to the job_tracker #{SimpleMapReduce.job_worker_url}") end |
.s3_client ⇒ Object
80 81 82 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 80 def s3_client SimpleMapReduce::S3Client.instance.client end |
.setup_worker ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/simple_map_reduce/server/job_worker.rb', line 38 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("The job tracker url: #{SimpleMapReduce.job_tracker_url}") end |