Module: ActiveJob::Uniqueness::Strategies::Base::LockingOnEnqueue
- Defined in:
- lib/active_job/uniqueness/strategies/base.rb
Instance Method Summary collapse
Instance Method Details
#around_enqueue(block) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/active_job/uniqueness/strategies/base.rb', line 84 def around_enqueue(block) return if @job_aborted # ActiveJob 4.2 workaround enqueued = false block.call enqueued = true ensure unlock(resource: lock_key) unless @job_aborted || enqueued end |
#before_enqueue ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/active_job/uniqueness/strategies/base.rb', line 71 def before_enqueue return if lock(resource: lock_key, ttl: lock_ttl) handle_conflict(resource: lock_key, on_conflict: on_conflict) abort_job rescue RedisClient::ConnectionError => e handle_redis_connection_error( resource: lock_key, on_redis_connection_error: on_redis_connection_error, error: e ) abort_job end |