Commit 0b403c5b authored by Ross Kaffenberger's avatar Ross Kaffenberger
Browse files

inbound datagram push events to redis api on EM.next_tick

parent 4c0e13f9
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -9,12 +9,27 @@ class FnordMetric::InboundDatagram < EventMachine::Connection
    EM.open_datagram_socket(*opts[:inbound_stream], self, opts)
  end

  def receive_data(data)
    api.event(data)
  def receive_data(event)
    events << event
    push_next_event
  end

  def push_next_event
    return true if events.empty?
    api.event(@events.pop)
    EM.next_tick(&method(:push_next_event))
  end

  def unbind
    api.disconnect
  end

  def api
    @api ||= FnordMetric::API.new(self.class.opts)
  end

  def events
    @events ||= []
  end

end
 No newline at end of file