Navigation Menu

Skip to content

Commit

Permalink
Start and shutdown Forwarder under EngineNode correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Jan 6, 2015
1 parent 4905585 commit 39bf724
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 12 deletions.
26 changes: 21 additions & 5 deletions lib/droonga/cluster.rb
Expand Up @@ -33,20 +33,36 @@ def initialize(loop)
@state = nil
@on_change = nil

@file_observer = FileObserver.new(loop, Path.cluster_state)
@file_observer.on_change = lambda do
reload
end

reload
end

def start_observe
return if @file_observer
@file_observer = FileObserver.new(@loop, Path.cluster_state)
@file_observer.on_change = lambda do
reload
end
@file_observer.start
end

def stop_observe
return unless @file_observer
@file_observer.stop
@file_observer = nil
end

def start
engine_nodes.each do |node|
node.start
end
start_observe
end

def shutdown
stop_observe
engine_nodes.each do |node|
node.shutdown
end
end

def reload
Expand Down
4 changes: 3 additions & 1 deletion lib/droonga/engine.rb
Expand Up @@ -52,7 +52,7 @@ def start
@on_ready.call if @on_ready
end
@state.start
@cluster.start_observe
@cluster.start
@node_metadata_observer.start
@dispatcher.start
logger.trace("start: done")
Expand All @@ -66,6 +66,7 @@ def stop_gracefully
logger.trace("stop_gracefully/on_finish: start")
save_last_processed_message_timestamp
@dispatcher.stop_gracefully do
@cluster.shutdown
@state.shutdown
yield
end
Expand All @@ -88,6 +89,7 @@ def stop_immediately
@cluster.stop_observe
@node_metadata_observer.stop
@dispatcher.stop_immediately
@cluster.shutdown
@state.shutdown
logger.trace("stop_immediately: done")
end
Expand Down
8 changes: 2 additions & 6 deletions lib/droonga/engine_node.rb
Expand Up @@ -33,7 +33,8 @@ def initialize(name, state, sender_role, loop)

def start
logger.trace("start: start")
resume
@forwarder.start
@buffer.start_forward if really_writable?
logger.trace("start: done")
end

Expand All @@ -43,11 +44,6 @@ def shutdown
logger.trace("shutdown: done")
end

def resume
@forwarder.resume
@buffer.start_forward if really_writable?
end

def forward(message, destination)
if not really_writable?
@buffer.add(message, destination)
Expand Down

0 comments on commit 39bf724

Please sign in to comment.