Class: SimpleMapReduce::Server::Worker
- Inherits:
-
Object
- Object
- SimpleMapReduce::Server::Worker
- Extended by:
- Forwardable
- Includes:
- AASM
- Defined in:
- lib/simple_map_reduce/server/worker.rb
Constant Summary collapse
- STATES =
%i(ready reserved working).freeze
Instance Attribute Summary collapse
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #dump ⇒ Object
- #id ⇒ Object
-
#initialize(url:, id: nil, state: nil, data_store_type: 'default') ⇒ Worker
constructor
A new instance of Worker.
-
#update!(url: nil, event: nil) ⇒ Object
update Job.
Constructor Details
#initialize(url:, id: nil, state: nil, data_store_type: 'default') ⇒ Worker
Returns a new instance of Worker.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/simple_map_reduce/server/worker.rb', line 40 def initialize(url:, id: nil, state: nil, data_store_type: 'default') @url = url @id = id if STATES.include?(state) aasm_write_state_without_persistence(state) end @data_store = SimpleMapReduce::DataStoreFactory.create(data_store_type, server_url: url, resource_name: 'workers', resource_id: self.id) unless valid? raise ArgumentError, 'invalid url' end end |
Instance Attribute Details
#url ⇒ Object
Returns the value of attribute url.
13 14 15 |
# File 'lib/simple_map_reduce/server/worker.rb', line 13 def url @url end |
Instance Method Details
#dump ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/simple_map_reduce/server/worker.rb', line 59 def dump { id: id, url: @url, state: state } end |
#id ⇒ Object
55 56 57 |
# File 'lib/simple_map_reduce/server/worker.rb', line 55 def id @id ||= SecureRandom.uuid end |
#update!(url: nil, event: nil) ⇒ Object
update Job
71 72 73 74 75 76 77 78 79 |
# File 'lib/simple_map_reduce/server/worker.rb', line 71 def update!(url: nil, event: nil) if url self.url = url end if event public_send(event.to_sym) end end |