Class: Legion::Identity::LeaseRenewer
- Inherits:
-
Object
- Object
- Legion::Identity::LeaseRenewer
- Defined in:
- lib/legion/identity/lease_renewer.rb
Constant Summary collapse
- BACKOFF_SLEEP =
5- MIN_SLEEP =
1- DEFAULT_SLEEP =
60
Instance Attribute Summary collapse
-
#provider ⇒ Object
readonly
Returns the value of attribute provider.
-
#provider_name ⇒ Object
readonly
Returns the value of attribute provider_name.
Instance Method Summary collapse
- #alive? ⇒ Boolean
- #current_lease ⇒ Object
-
#initialize(provider_name:, provider:, lease:) ⇒ LeaseRenewer
constructor
A new instance of LeaseRenewer.
- #stop! ⇒ Object
Constructor Details
#initialize(provider_name:, provider:, lease:) ⇒ LeaseRenewer
Returns a new instance of LeaseRenewer.
14 15 16 17 18 19 20 21 22 |
# File 'lib/legion/identity/lease_renewer.rb', line 14 def initialize(provider_name:, provider:, lease:) @provider_name = provider_name @provider = provider @lease = Concurrent::AtomicReference.new(lease) @stop = Concurrent::AtomicBoolean.new(false) @thread = Thread.new { run_loop } @thread.name = "lease-renewer-#{provider_name}" @thread.abort_on_exception = false end |
Instance Attribute Details
#provider ⇒ Object (readonly)
Returns the value of attribute provider.
8 9 10 |
# File 'lib/legion/identity/lease_renewer.rb', line 8 def provider @provider end |
#provider_name ⇒ Object (readonly)
Returns the value of attribute provider_name.
8 9 10 |
# File 'lib/legion/identity/lease_renewer.rb', line 8 def provider_name @provider_name end |
Instance Method Details
#alive? ⇒ Boolean
34 35 36 |
# File 'lib/legion/identity/lease_renewer.rb', line 34 def alive? @thread&.alive? || false end |
#current_lease ⇒ Object
24 25 26 |
# File 'lib/legion/identity/lease_renewer.rb', line 24 def current_lease @lease.get end |
#stop! ⇒ Object
28 29 30 31 32 |
# File 'lib/legion/identity/lease_renewer.rb', line 28 def stop! @stop.make_true @thread&.wakeup rescue nil # rubocop:disable Style/RescueModifier @thread&.join(5) end |