class SimpleApm::ProcessingThread

开启一个接收事件的并行thread,每隔一秒处理一次

Public Class Methods

add_event(e) click to toggle source
# File lib/simple_apm.rb, line 73
def add_event(e)
  @processing_thread && @processing_thread[:events].push(e)
end
start!() click to toggle source
# File lib/simple_apm.rb, line 76
def start!
  @main_thread ||= ::Thread.current
  @processing_thread ||= ::Thread.new do
    ::Thread.current.name = 'simple-apm-processing-thread' if ::Thread.current.respond_to?(:name)
    ::Thread.current[:events] ||= []
    loop do
      while e = ::Thread.current[:events].shift
        ::SimpleApm::Worker.process! e
      end
      sleep 0.5
    end
  end
end