class SidekiqUniqueJobs::Lock::UntilExecuting
Locks jobs until {#execute} starts
-
Locks on perform_in or perform_async
-
Unlocks before yielding to the worker's perform method
@author Mikael Henriksson <mikael@mhenrixon.com>
Public Instance Methods
execute() { || ... }
click to toggle source
Executes in the Sidekiq
server process @yield to the worker class perform method
# File lib/sidekiq_unique_jobs/lock/until_executing.rb, line 33 def execute callback_safely if locksmith.unlock yield end
lock() { || ... }
click to toggle source
Locks a sidekiq job
@note Will call a conflict strategy if lock can't be achieved.
@return [String, nil] the locked jid when properly locked, else nil.
# File lib/sidekiq_unique_jobs/lock/until_executing.rb, line 18 def lock(&block) unless (token = locksmith.lock) reflect(:lock_failed, item) call_strategy(origin: :client, &block) return end yield if block token end