Sha256: 1688daee3c8111977a064f5384d1a1c443985d340cdeee82d81ecc75ac13c16b
Contents?: true
Size: 904 Bytes
Versions: 2
Compression:
Stored size: 904 Bytes
Contents
# frozen_string_literal: true # @api private # @since 1.0.0 module RedisQueuedLocks::Acquier::AcquireLock::WithAcqTimeout # @param timeout [NilClass,Integer] # Time period after which the logic will fail with timeout error. # @param lock_key [String] # Lock name. # @param raise_errors [Boolean] # Raise erros on exceptional cases. # @option on_timeout [Proc,NilClass] # Callback invoked on Timeout::Error. # @return [Any] # # @api private # @since 1.0.0 def with_acq_timeout(timeout, lock_key, raise_errors, on_timeout: nil, &block) ::Timeout.timeout(timeout, &block) rescue ::Timeout::Error on_timeout.call unless on_timeout == nil if raise_errors raise( RedisQueuedLocks::LockAcquiermentTimeoutError, "Failed to acquire the lock \"#{lock_key}\" " \ "for the given timeout (#{timeout} seconds)." ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
redis_queued_locks-1.7.0 | lib/redis_queued_locks/acquier/acquire_lock/with_acq_timeout.rb |
redis_queued_locks-1.2.0 | lib/redis_queued_locks/acquier/acquire_lock/with_acq_timeout.rb |