class Kronos::Runner::Synchronous::LockManager
Public Class Methods
new(storage)
click to toggle source
# File lib/kronos/runner/synchronous/lock_manager.rb, line 9 def initialize(storage) @storage = storage end
Public Instance Methods
lock_and_execute(task_id) { || ... }
click to toggle source
# 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