class WithTransactionalLock::Mixin::AdvisoryLockBase
Attributes
connection[R]
lock_name[R]
Public Class Methods
new(connection, lock_name)
click to toggle source
# File lib/with_transactional_lock/mixin.rb, line 37 def initialize(connection, lock_name) @connection = connection @lock_name = lock_name end
Public Instance Methods
yield_with_lock() { || ... }
click to toggle source
# File lib/with_transactional_lock/mixin.rb, line 42 def yield_with_lock connection.transaction do acquire_lock yield end end
Private Instance Methods
db_lock_name()
click to toggle source
# File lib/with_transactional_lock/mixin.rb, line 51 def db_lock_name @db_lock_name ||= Digest::SHA256.digest(lock_name)[0, 8].unpack1('q') end