Fixes the follow cases - The ensure block released the lock even on LockAcquisitionError - Custom timeout was not allowed This also refactored the with_lock method, now the key has to be constructed in the parent function itself Co-authored-by: Sojan Jose <sojan@pepalo.com>
12 lines
411 B
Ruby
12 lines
411 B
Ruby
class SendOnSlackJob < MutexApplicationJob
|
|
queue_as :medium
|
|
retry_on LockAcquisitionError, wait: 1.second, attempts: 8
|
|
|
|
def perform(message, hook)
|
|
key = format(::Redis::Alfred::SLACK_MESSAGE_MUTEX, conversation_id: message.conversation_id, reference_id: hook.reference_id)
|
|
with_lock(key) do
|
|
Integrations::Slack::SendOnSlackService.new(message: message, hook: hook).perform
|
|
end
|
|
end
|
|
end
|