2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-09 04:28:27 +08:00
|
|
|
module Jobs
|
2019-10-02 12:01:53 +08:00
|
|
|
class ProcessEmail < ::Jobs::Base
|
2016-08-09 04:28:27 +08:00
|
|
|
sidekiq_options retry: 3
|
|
|
|
|
|
|
|
def execute(args)
|
2021-01-20 11:22:41 +08:00
|
|
|
Email::Processor.process!(
|
|
|
|
args[:mail],
|
|
|
|
retry_on_rate_limit: args[:retry_on_rate_limit] || false,
|
|
|
|
source: args[:source]&.to_sym,
|
|
|
|
)
|
2016-08-09 04:28:27 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
sidekiq_retries_exhausted do |msg|
|
|
|
|
Rails.logger.warn(
|
|
|
|
"Incoming email could not be processed after 3 retries.\n\n#{msg["args"][:mail]}",
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|