Sha256: 8dc31e86873b5365a39c7ff5427f69ac5e1f5b3c4727ae6bf69d4c60f81618db

Contents?: true

Size: 749 Bytes

Versions: 1

Compression:

Stored size: 749 Bytes

Contents

name 'new line delimeter json transport'

always_start true
ignore_errors true

default[:host], default[:port] = Kurchatov::Config[:nsjson_transport].to_s.split(":")

run_if do
  !!plugin.host
end

helpers do

  def mutex
    @mutex ||= Mutex.new
  end

  def flush
    @tcpsocket ||= TCPSocket.new(plugin.host, plugin.port.to_i)
    @events_to_send ||= events.to_flush
    if !@events_to_send.empty?
      @message = {"events" => @events_to_send}.to_json
      Log.info("Message: #{@message}")
      mutex.synchronize { @tcpsocket.puts(@message) }
    end
    @events_to_send = nil
  end

  def flush_or_exit
    flush rescue (exit 99)
  end

end

run do
  Log.info("Start with #{plugin.host}:#{plugin.port}")
  loop { flush_or_exit; sleep 1 }
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kurchatov-0.4.7 lib/kurchatov/responders/ndjson_transport.rb