class Cloudtasker::UniqueJob::Lock::BaseLock
Base behaviour for locks
Attributes
job[R]
Public Class Methods
new(job)
click to toggle source
Build a new instance of the class.
@param [Cloudtasker::UniqueJob::Job] job The UniqueJob
job
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 15 def initialize(job) @job = job end
Public Instance Methods
conflict_instance()
click to toggle source
Return the conflict strategy to use on conflict
@return [Cloudtasker::UniqueJob::ConflictStrategy::BaseStrategy] The instantiated strategy.
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 42 def conflict_instance @conflict_instance ||= begin # Infer lock class and get instance strategy_name = options[:on_conflict] strategy_klass = ConflictStrategy.const_get(strategy_name.to_s.split('_').collect(&:capitalize).join) strategy_klass.new(job) rescue NameError default_conflict_strategy.new(job) end end
default_conflict_strategy()
click to toggle source
Return the strategy to use by default. Can be overriden in each lock.
@return [Cloudtasker::UniqueJob::ConflictStrategy::BaseStrategy] The strategy to use by default.
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 33 def default_conflict_strategy ConflictStrategy::Reject end
execute() { || ... }
click to toggle source
Lock
logic invoked when a job is executed (server middleware).
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 64 def execute yield end
options()
click to toggle source
Return the worker configuration options.
@return [Hash] The worker configuration options.
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 24 def options job.options end
schedule() { || ... }
click to toggle source
Lock
logic invoked when a job is scheduled (client middleware).
# File lib/cloudtasker/unique_job/lock/base_lock.rb, line 57 def schedule yield end