diff --git a/lib/droonga/command/serf_event_handler.rb b/lib/droonga/command/serf_event_handler.rb index b7f2802e..12d0fb86 100644 --- a/lib/droonga/command/serf_event_handler.rb +++ b/lib/droonga/command/serf_event_handler.rb @@ -39,6 +39,13 @@ def run command.process if command.should_process? output_response(command.response) true + rescue Exception => exception + #XXX Any exception blocks following serf operations. + # To keep it working, I rescue any exception for now. + File.open(Path.serf_event_handler_error_file, "w") do |file| + file.write(exception.inspect) + end + true end private diff --git a/lib/droonga/path.rb b/lib/droonga/path.rb index 19ab72bb..e58d1933 100644 --- a/lib/droonga/path.rb +++ b/lib/droonga/path.rb @@ -74,6 +74,14 @@ def buffer def serf_event_handler_errors state + "serf-event-handler-errors" end + + def serf_event_handler_error_file + now = Time.now + name = sprintf("%04d-%02d-%02d_%02d-%02d-%02d.%d.error", + now.year, now.month, now.day, + now.hour, now.min, now.sec, now.nsec) + serf_event_handler_errors + name + end end end end