Module: ConsulStockpile::ConsulLock
Instance Method Summary collapse
Instance Method Details
#with_lock(key:) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/consul_stockpile/consul_lock.rb', line 5 def with_lock(key:) sessionid = nil locked = false sessionid = Diplomat::Session.create(Name: "#{key}.lock") locked = Diplomat::Lock.wait_to_acquire(key, sessionid) yield ensure if sessionid != nil Diplomat::Lock.release(key, sessionid) if locked Diplomat::Session.destroy(sessionid) end end |