class ActiveJob::Locking::Adapters::RedisSemaphore

Public Instance Methods

create_lock_manager() click to toggle source
# File lib/activejob/locking/adapters/redis-semaphore.rb, line 7
def create_lock_manager
  mapped_options = {host: self.options.hosts.first,
                    resources: 1,
                    stale_client_timeout: self.options.lock_time}.merge(self.options.adapter_options)

  Redis::Semaphore.new(self.key, mapped_options)
end
lock() click to toggle source
# File lib/activejob/locking/adapters/redis-semaphore.rb, line 15
def lock
  self.lock_token = self.lock_manager.lock(self.options.lock_acquire_time)
end
unlock() click to toggle source
# File lib/activejob/locking/adapters/redis-semaphore.rb, line 19
def unlock
  self.lock_manager.signal(self.lock_token)
  self.lock_token = nil
end