[Groonga-commit] droonga/droonga-engine at 678aa4a [master] Refresh loaded node_status immediately

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Nov 21 12:32:23 JST 2014


YUKI Hiroshi	2014-11-21 12:32:23 +0900 (Fri, 21 Nov 2014)

  New Revision: 678aa4a3cdad45ab823daad8e413e44390d277a5
  https://github.com/droonga/droonga-engine/commit/678aa4a3cdad45ab823daad8e413e44390d277a5

  Message:
    Refresh loaded node_status immediately

  Modified files:
    lib/droonga/engine.rb
    lib/droonga/node_status.rb
    lib/droonga/path.rb

  Modified: lib/droonga/engine.rb (+8 -1)
===================================================================
--- lib/droonga/engine.rb    2014-11-21 12:19:50 +0900 (bab3952)
+++ lib/droonga/engine.rb    2014-11-21 12:32:23 +0900 (72c0f8d)
@@ -40,6 +40,10 @@ module Droonga
       @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
+        node_status.reload
+      end
       @on_ready = nil
     end
 
@@ -50,6 +54,7 @@ module Droonga
       end
       @state.start
       @live_nodes_list_observer.start
+      @node_status_observer.start
       @dispatcher.start
       logger.trace("start: done")
     end
@@ -57,6 +62,7 @@ module Droonga
     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")
         save_last_processed_timestamp
@@ -81,6 +87,7 @@ module Droonga
       logger.trace("stop_immediately: start")
       save_last_processed_timestamp
       @live_nodes_list_observer.stop
+      @node_status_observer.stop
       @dispatcher.stop_immediately
       @state.shutdown
       logger.trace("stop_immediately: done")
@@ -134,7 +141,7 @@ module Droonga
       message_timestamp = Time.parse(message["date"])
       return false if effective_timestamp >= message_timestamp
 
-      FileUtils.rm(Path.effective_timestamp.to_s)
+      node_status.delete(:effective_message_timestamp)
       true
     end
 

  Modified: lib/droonga/node_status.rb (+6 -2)
===================================================================
--- lib/droonga/node_status.rb    2014-11-21 12:19:50 +0900 (a647ec1)
+++ lib/droonga/node_status.rb    2014-11-21 12:32:23 +0900 (ff5a04f)
@@ -20,7 +20,7 @@ require "droonga/safe_file_writer"
 module Droonga
   class NodeStatus
     def initialize
-      @status = load
+      reload
     end
 
     def have?(key)
@@ -45,13 +45,17 @@ module Droonga
       SafeFileWriter.write(status_file, JSON.pretty_generate(@status))
     end
 
+    def reload
+      @status = load
+    end
+
     private
     def normalize_key(key)
       key.to_sym
     end
 
     def status_file
-      @status_file ||= Path.state + "status_file"
+      @status_file ||= Path.node_status
     end
 
     def load

  Modified: lib/droonga/path.rb (+4 -0)
===================================================================
--- lib/droonga/path.rb    2014-11-21 12:19:50 +0900 (18577d4)
+++ lib/droonga/path.rb    2014-11-21 12:32:23 +0900 (d2b9f0a)
@@ -44,6 +44,10 @@ module Droonga
         base + "state"
       end
 
+      def node_status
+        state + "status_file"
+      end
+
       def live_nodes
         state + "live-nodes.json"
       end
-------------- next part --------------
HTML����������������������������...
下載 



More information about the Groonga-commit mailing list
Back to archive index