Class: EventMachine::Twitter::Reconnectors::ApplicationFailure

Inherits:
Object
  • Object
show all
Defined in:
lib/em-twitter/reconnectors/application_failure.rb

Constant Summary collapse

START =
10
INCREMENTOR =
2
MAX_RECONNECTS =
10
DEFAULT_RECONNECT =
0
MAX_TIMEOUT =
320

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ ApplicationFailure

Returns a new instance of ApplicationFailure.



16
17
18
19
# File 'lib/em-twitter/reconnectors/application_failure.rb', line 16

def initialize(options = {})
  @reconnect_count    = options.delete(:reconnect_count) || DEFAULT_RECONNECT
  @reconnect_timeout  = options.delete(:reconnect_timeout) || START
end

Instance Attribute Details

#reconnect_countObject (readonly)

Returns the value of attribute reconnect_count.



13
14
15
# File 'lib/em-twitter/reconnectors/application_failure.rb', line 13

def reconnect_count
  @reconnect_count
end

#reconnect_timeoutObject



21
22
23
# File 'lib/em-twitter/reconnectors/application_failure.rb', line 21

def reconnect_timeout
  @reconnect_timeout
end

Instance Method Details

#increment {|@reconnect_timeout| ... } ⇒ Object

Yields:



25
26
27
28
29
30
31
32
33
34
# File 'lib/em-twitter/reconnectors/application_failure.rb', line 25

def increment
  if maximum_reconnects?
    raise EM::Twitter::ReconnectLimitError.new("#{@reconnect_count} Reconnects")
  end

  yield @reconnect_timeout if block_given?

  @reconnect_count += 1
  @reconnect_timeout *= INCREMENTOR
end

#resetObject



36
37
38
39
# File 'lib/em-twitter/reconnectors/application_failure.rb', line 36

def reset
  @reconnect_timeout = START
  @reconnect_count = DEFAULT_RECONNECT
end