Class: Kronos::Runner::Synchronous::LockManager
- Inherits:
-
Object
- Object
- Kronos::Runner::Synchronous::LockManager
- Extended by:
- Forwardable
- Defined in:
- lib/kronos/runner/synchronous/lock_manager.rb
Instance Method Summary collapse
-
#initialize(storage) ⇒ LockManager
constructor
A new instance of LockManager.
- #lock_and_execute(task_id) ⇒ Object
Constructor Details
#initialize(storage) ⇒ LockManager
Returns a new instance of LockManager.
9 10 11 |
# File 'lib/kronos/runner/synchronous/lock_manager.rb', line 9 def initialize(storage) @storage = storage end |
Instance Method Details
#lock_and_execute(task_id) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/kronos/runner/synchronous/lock_manager.rb', line 13 def lock_and_execute(task_id) return if locked_task?(task_id) lock_id = lock_task(task_id) return unless check_lock(task_id, lock_id) yield ensure release_lock(task_id) end |