Module Raindrops::Aggregate::LastDataRecv
In: lib/raindrops/aggregate/last_data_recv.rb  (CVS)

This module is used to extend TCPServer and Kgio::TCPServer objects and aggregate last_data_recv times for all accepted clients. It is designed to be used with Raindrops::LastDataRecv Rack application but can be easily changed to work with other stats collection devices.

Methods wrapped include:

  • TCPServer#accept
  • TCPServer#accept_nonblock
  • Kgio::TCPServer#kgio_accept
  • Kgio::TCPServer#kgio_tryaccept

Methods

Attributes

raindrops_aggregate  [RW]  The integer value of last_data_recv is sent to this object. This is usually a duck type compatible with the \Aggregate class, but can be anything that accepts the *<<* method.

Public Class methods

automatically extends any TCPServer objects used by Unicorn

By default, this is a Raindrops::Aggregate::PMQ object It may be anything that responds to *<<*

Assign any object that responds to *<<*

each extended object needs to have TCP_DEFER_ACCEPT enabled for accuracy.

Public Instance methods

The last_data_recv member of Raindrops::TCP_Info can be used to infer the time a client spent in the listen queue before it was accepted.

We require TCP_DEFER_ACCEPT on the listen socket for last_data_recv to be accurate

[Validate]