module AplLocker

Public Class Methods

locked_block(namespace, resource, params, wait_time=1000.0, retry_count=0, &block) click to toggle source

hold lock only for the 'block' and delete from database once done.

# File lib/apl-library/apl_locker.rb, line 19
def self.locked_block namespace, resource, params, wait_time=1000.0, retry_count=0, &block
  error = nil
  begin
    lock(namespace, resource, params, nil, 600, wait_time, retry_count, &block)
  rescue Exception => e
    error = e
    # delete lock and raise it again
    resource_lock = ScLock::Lock.find_by_resource_name_and_key("#{namespace}-#{resource}", params.sort.to_s)
    resource_lock.delete if resource_lock
  end

  raise error if error
end