diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
commit | a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch) | |
tree | fb69158581673816a8cd895f9d352dcb3c678b1e /config/initializers/mailer_retries.rb | |
parent | d16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff) |
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'config/initializers/mailer_retries.rb')
-rw-r--r-- | config/initializers/mailer_retries.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/config/initializers/mailer_retries.rb b/config/initializers/mailer_retries.rb new file mode 100644 index 00000000000..64fb0ffaa55 --- /dev/null +++ b/config/initializers/mailer_retries.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +class ActiveJob::QueueAdapters::SidekiqAdapter + # With Sidekiq 6, we can do something like: + # class ActionMailer::MailDeliveryJob + # sidekiq_options retry: 3 + # end + # + # See https://gitlab.com/gitlab-org/gitlab/-/issues/329430 + raise "Update this monkey patch: #{__FILE__}" unless Sidekiq::VERSION == '5.2.9' + + def enqueue(job) #:nodoc: + # Sidekiq::Client does not support symbols as keys + job.provider_job_id = Sidekiq::Client.push \ + "class" => JobWrapper, + "wrapped" => job.class.to_s, + "queue" => job.queue_name, + "args" => [job.serialize], + "retry" => retry_for(job) + end + + def enqueue_at(job, timestamp) #:nodoc: + job.provider_job_id = Sidekiq::Client.push \ + "class" => JobWrapper, + "wrapped" => job.class.to_s, + "queue" => job.queue_name, + "args" => [job.serialize], + "at" => timestamp, + "retry" => retry_for(job) + end + + private + + def retry_for(job) + if job.queue_name == 'mailers' + 3 + else + true + end + end +end |