Class: Droonga::FluentMessageSender

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/droonga/fluent_message_sender.rb

Instance Method Summary collapse

Constructor Details

#initialize(loop, host, port) ⇒ FluentMessageSender

Returns a new instance of FluentMessageSender.



29
30
31
32
33
34
35
36
# File 'lib/droonga/fluent_message_sender.rb', line 29

def initialize(loop, host, port)
  @loop = loop
  @host = host
  @port = port
  @socket = nil
  @buffer = []
  @write_mutex = Mutex.new
end

Instance Method Details

#send(tag, data) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/droonga/fluent_message_sender.rb', line 51

def send(tag, data)
  logger.trace("send: start")
  fluent_message = [tag, Time.now.to_i, data]
  packed_fluent_message = MessagePackPacker.pack(fluent_message)
  @write_mutex.synchronize do
    @buffer << packed_fluent_message
    @writer.signal
  end
  logger.trace("send: done")
end

#shutdownObject



44
45
46
47
48
49
# File 'lib/droonga/fluent_message_sender.rb', line 44

def shutdown
  logger.trace("shutdown: start")
  shutdown_writer
  shutdown_socket
  logger.trace("shutdown: done")
end

#startObject



38
39
40
41
42
# File 'lib/droonga/fluent_message_sender.rb', line 38

def start
  logger.trace("start: start")
  start_writer
  logger.trace("start: done")
end