Class: Droonga::Engine
- Inherits:
-
Object
- Object
- Droonga::Engine
- Includes:
- Loggable
- Defined in:
- lib/droonga/engine.rb,
lib/droonga/engine/version.rb
Constant Summary collapse
- VERSION =
"1.0.9"
Instance Attribute Summary collapse
-
#on_ready ⇒ Object
writeonly
Sets the attribute on_ready.
Instance Method Summary collapse
-
#initialize(loop, name, internal_name) ⇒ Engine
constructor
A new instance of Engine.
- #node_status ⇒ Object
- #process(message) ⇒ Object
- #start ⇒ Object
- #stop_gracefully ⇒ Object
-
#stop_immediately ⇒ Object
It may be called after stop_gracefully.
Constructor Details
#initialize(loop, name, internal_name) ⇒ Engine
Returns a new instance of Engine.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/droonga/engine.rb', line 34 def initialize(loop, name, internal_name) @state = EngineState.new(loop, name, internal_name) @catalog = load_catalog @state.catalog = @catalog @dispatcher = create_dispatcher @live_nodes_list_observer = FileObserver.new(loop, Path.live_nodes) @live_nodes_list_observer.on_change = lambda do @state.live_nodes = load_live_nodes end @node_status_observer = FileObserver.new(loop, Path.node_status) @node_status_observer.on_change = lambda do logger.trace("reloading node_status: start") node_status.reload logger.trace("reloading node_status: done") end @on_ready = nil end |
Instance Attribute Details
#on_ready=(value) ⇒ Object (writeonly)
Sets the attribute on_ready
33 34 35 |
# File 'lib/droonga/engine.rb', line 33 def on_ready=(value) @on_ready = value end |
Instance Method Details
#node_status ⇒ Object
104 105 106 |
# File 'lib/droonga/engine.rb', line 104 def node_status @node_status ||= NodeStatus.new end |
#process(message) ⇒ Object
98 99 100 101 102 |
# File 'lib/droonga/engine.rb', line 98 def process() return unless () @last_processed_message_timestamp = ["date"] @dispatcher.() end |
#start ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/droonga/engine.rb', line 52 def start logger.trace("start: start") @state.on_ready = lambda do @on_ready.call if @on_ready end @state.start @live_nodes_list_observer.start @node_status_observer.start @dispatcher.start logger.trace("start: done") end |
#stop_gracefully ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/droonga/engine.rb', line 64 def stop_gracefully logger.trace("stop_gracefully: start") @live_nodes_list_observer.stop @node_status_observer.stop on_finish = lambda do logger.trace("stop_gracefully/on_finish: start") @dispatcher.stop_gracefully do @state.shutdown yield end logger.trace("stop_gracefully/on_finish: done") end if @state.have_session? logger.trace("stop_gracefully/having sessions") @state.on_finish = on_finish else logger.trace("stop_gracefully/no session") on_finish.call end logger.trace("stop_gracefully: done") end |
#stop_immediately ⇒ Object
It may be called after stop_gracefully.
88 89 90 91 92 93 94 95 96 |
# File 'lib/droonga/engine.rb', line 88 def stop_immediately logger.trace("stop_immediately: start") @live_nodes_list_observer.stop @node_status_observer.stop @dispatcher.stop_immediately @state.shutdown logger.trace("stop_immediately: done") end |