Navigation Menu

Skip to content

Commit

Permalink
Store list of live nodes to EngineState
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Jun 26, 2014
1 parent fac62b0 commit 5536a78
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
9 changes: 3 additions & 6 deletions lib/droonga/engine.rb
Expand Up @@ -32,12 +32,11 @@ class Engine
def initialize(loop, name, internal_name)
@state = EngineState.new(loop, name, internal_name)
@catalog = load_catalog
@live_nodes = @catalog.all_nodes
@state.catalog = @catalog
@dispatcher = create_dispatcher
@live_nodes_list_observer = FileObserver.new(loop, Path.live_nodes)
@live_nodes_list_observer.on_change = lambda do
@live_nodes = load_live_nodes
@dispatcher.live_nodes = @live_nodes if @dispatcher
@state.live_nodes = load_live_nodes
end
end

Expand Down Expand Up @@ -104,9 +103,7 @@ def load_live_nodes
end

def create_dispatcher
dispatcher = Dispatcher.new(@state, @catalog)
dispatcher.live_nodes = @live_nodes
dispatcher
Dispatcher.new(@state, @catalog)
end

def output_last_processed_timestamp
Expand Down
12 changes: 12 additions & 0 deletions lib/droonga/engine_state.rb
Expand Up @@ -32,6 +32,8 @@ class EngineState
attr_reader :forwarder
attr_reader :replier
attr_accessor :on_finish
attr_accessor :catalog
attr_accessor :live_nodes
def initialize(loop, name, internal_name)
@loop = loop
@name = name
Expand All @@ -42,6 +44,8 @@ def initialize(loop, name, internal_name)
@forwarder.resume
@replier = Replier.new(@forwarder)
@on_finish = nil
@catalog = nil
@live_nodes = nil
end

def start
Expand Down Expand Up @@ -98,6 +102,14 @@ def have_session?
not @sessions.empty?
end

def all_nodes
@catalog.all_nodes
end

def live_nodes
@live_nodes || @catalog.all_nodes
end

private
def log_tag
"engine_state"
Expand Down

0 comments on commit 5536a78

Please sign in to comment.