Class: Mongo::Server::RoundTripTimeAverager Private
- Inherits:
-
Object
- Object
- Mongo::Server::RoundTripTimeAverager
- Defined in:
- lib/mongo/server/round_trip_time_averager.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Attribute Summary collapse
- #average_round_trip_time ⇒ Object readonly private
- #last_round_trip_time ⇒ Object readonly private
Instance Method Summary collapse
-
#initialize ⇒ RoundTripTimeAverager
constructor
private
A new instance of RoundTripTimeAverager.
- #measure ⇒ Object private
Constructor Details
#initialize ⇒ RoundTripTimeAverager
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of RoundTripTimeAverager.
25 26 27 28 |
# File 'lib/mongo/server/round_trip_time_averager.rb', line 25 def initialize @last_round_trip_time = nil @average_round_trip_time = nil end |
Instance Attribute Details
#average_round_trip_time ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
31 32 33 |
# File 'lib/mongo/server/round_trip_time_averager.rb', line 31 def average_round_trip_time @average_round_trip_time end |
#last_round_trip_time ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
30 31 32 |
# File 'lib/mongo/server/round_trip_time_averager.rb', line 30 def last_round_trip_time @last_round_trip_time end |
Instance Method Details
#measure ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/mongo/server/round_trip_time_averager.rb', line 33 def measure start = Time.now begin rv = yield rescue Exception => exc end last_round_trip_time = Time.now - start # If ismaster fails, we need to return the last round trip time # because it is used in the heartbeat failed SDAM event, # but we must not update the round trip time recorded in the server. unless exc @last_round_trip_time = last_round_trip_time update_average_round_trip_time end [rv, exc, last_round_trip_time, average_round_trip_time] end |