Как настроить ApplicationMailer (или ActionMailer) на использование Activejob / sidekiq по умолчанию - PullRequest
1 голос
/ 22 октября 2019

Нам нужно использовать sidekiq для отправки всех наших электронных писем на Rails 5, я нашел несколько ссылок ( ссылка # 1 , ссылка # 2 ), показывающих, как мы можем сделать это для конкретных новыхпочтовые программы, но нет ресурсов о том, как это можно сделать по умолчанию (переопределяя поведение для ApplicationMailer (или ActionMailer))

Я мог бы получить это для электронных писем разработчиков, используя devise_async gem, но я хочу сделать это поведением по умолчанию для всей электронной почты, отправляемой через приложение

Так, как я могу связать метод deliver_later с почтовой программой по умолчанию или внедрить задание sidekiq, которое всегда будет использоватьсяпочтовый по умолчанию?

Я пробовал несколько вариантов добавления метода deliver_later к application_mailer.rb, но ни один из них не работал

Обновление:

Я хочу переопределить ApplicationMailer или ActionMailer, чтобы избежать вызова deliver_later для каждого Mailer отдельно, цель состоит в том, чтобы сделать это в родительском классе, от которого наследуются все почтовые программы, чтобы избежать повторения и поддерживать принцип DRY

Я ожидаю обновления этого файла application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  default from: 'xxxxxx'
  layout 'mailer'

  # Maybe adding a way here to chain the deliver_later method
  def initialize
    # somehow chain deliver_later method after the object creation from this class
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...