Class: Droonga::Farm
- Inherits:
-
Object
- Object
- Droonga::Farm
- Defined in:
- lib/droonga/farm.rb
Instance Attribute Summary collapse
-
#on_ready ⇒ Object
writeonly
Sets the attribute on_ready.
Instance Method Summary collapse
-
#initialize(name, catalog, loop, options = {}) ⇒ Farm
constructor
A new instance of Farm.
- #process(slice_name, message) ⇒ Object
- #start ⇒ Object
- #stop_gracefully ⇒ Object
- #stop_immediately ⇒ Object
Constructor Details
#initialize(name, catalog, loop, options = {}) ⇒ Farm
Returns a new instance of Farm.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/droonga/farm.rb', line 23 def initialize(name, catalog, loop, ={}) @name = name @catalog = catalog @loop = loop @options = @slices = {} slices = @catalog.slices(name) slices.each do |slice_name, | dataset = @catalog.datasets[[:dataset]] slice = Droonga::Slice.new(dataset, @loop, @options.merge()) @slices[slice_name] = slice end end |
Instance Attribute Details
#on_ready=(value) ⇒ Object (writeonly)
Sets the attribute on_ready
22 23 24 |
# File 'lib/droonga/farm.rb', line 22 def on_ready=(value) @on_ready = value end |
Instance Method Details
#process(slice_name, message) ⇒ Object
71 72 73 |
# File 'lib/droonga/farm.rb', line 71 def process(slice_name, ) @slices[slice_name].process() end |
#start ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/droonga/farm.rb', line 39 def start n_ready_slices = 0 @slices.each_value do |slice| slice.on_ready = lambda do n_ready_slices += 1 if n_ready_slices == @slices.size @on_ready.call if @on_ready end end slice.start end end |
#stop_gracefully ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/droonga/farm.rb', line 52 def stop_gracefully n_slices = @slices.size n_done_slices = 0 @slices.each_value do |slice| slice.stop_gracefully do n_done_slices += 1 if n_done_slices == n_slices yield if block_given? end end end end |
#stop_immediately ⇒ Object
65 66 67 68 69 |
# File 'lib/droonga/farm.rb', line 65 def stop_immediately @slices.each_value do |slice| slice.stop_immediately end end |