-
Notifications
You must be signed in to change notification settings - Fork 5.5k
How To: Send devise emails in background (Resque, Sidekiq and Delayed::Job)
rchampourlier edited this page Jul 26, 2012
·
9 revisions
Since sending email synchronously is not a good idea, you'll probably want to have Devise enqueuing it's notification emails for background processing.
Although Devise doesn't support this out of the box you can achieve it easily by using the devise-async gem.
To do so, first add it to your Gemfile:
gem "devise-async"
Include Devise::Async::Model
to your Devise model
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable # etc ...
include Devise::Async::Model # should be below call to `devise`
end
Tell Devise to use the proxy mailer in config/initializers/devise.rb
:
# Configure the class responsible to send e-mails.
config.mailer = "Devise::Async::Proxy"
And last but not least, set your queuing backend by creating config/initializers/devise_async.rb
:
# Supported options: :resque, :sidekiq, :delayed_job
Devise::Async.backend = :resque
Your notification emails should now be gracefully enqueued for background processing.