Method: Fluent::Plugin::Output#acts_as_secondary

Defined in:
lib/fluent/plugin/output.rb

#acts_as_secondary(primary) ⇒ Object



248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'lib/fluent/plugin/output.rb', line 248

def acts_as_secondary(primary)
  @as_secondary = true
  @primary_instance = primary
  @chunk_keys = @primary_instance.chunk_keys || []
  @chunk_key_tag = @primary_instance.chunk_key_tag || false
  if @primary_instance.chunk_key_time
    @chunk_key_time = @primary_instance.chunk_key_time
    @timekey_zone = @primary_instance.timekey_zone
    @output_time_formatter_cache = {}
  end
  self.context_router = primary.context_router

  singleton_class.module_eval do
    define_method(:commit_write){ |chunk_id| @primary_instance.commit_write(chunk_id, delayed: delayed_commit, secondary: true) }
    define_method(:rollback_write){ |chunk_id, update_retry: true| @primary_instance.rollback_write(chunk_id, update_retry) }
  end
end