Как отправлять асинхронные электронные письма с помощью mail_form gem и sidekiq?

Я использую гем mail_form и имею следующий код

 def create
    @contact = Contact.new(contact_params)
    @contact.request = request
    respond_to do |format|
      if @contact.deliver
        format.html { redirect_to root_path, notice: "Thank you for your message."}
      else
        format.html {render :new, error: "There was a problem with sending your message."}
      end
    end
  end

Когда я отправляю свою контактную форму, требуется несколько секунд, чтобы отправить сообщение и перенаправить на домашнюю страницу.

Как сделать этот процесс асинхронным с помощью sidekiq?


person kirqe    schedule 22.07.2015    source источник
comment
получил ответ здесь stackoverflow.com/questions/ 31639073/. Тему можно закрывать и считать дублирующей.   -  person kirqe    schedule 27.07.2015


Ответы (1)


Настройте Sidekiq в качестве серверной части для Active Job http://edgeguides.rubyonrails.org/active_job_basics.html

А затем используйте метод delivery_later из ActionMailer.

http://edgeapi.rubyonrails.org/classes/ActionMailer/MessageDelivery.html#method-i-deliver_later

person wired9    schedule 22.07.2015