diff --git a/lib/devise/async.rb b/lib/devise/async.rb index 55dc51a..581084f 100644 --- a/lib/devise/async.rb +++ b/lib/devise/async.rb @@ -1,6 +1,7 @@ require 'devise' require 'devise/async/model' require 'devise/async/version' +require 'action_mailer' module Devise module Async @@ -8,6 +9,10 @@ module Async mattr_accessor :enabled @@enabled = true + # Defines the queue in which the background job will be enqueued. + mattr_accessor :queue + @@queue = ActionMailer::Base.deliver_later_queue_name + # Allow configuring Devise::Async with a block # # Example: diff --git a/lib/devise/async/model.rb b/lib/devise/async/model.rb index 0d7c208..3bd6571 100644 --- a/lib/devise/async/model.rb +++ b/lib/devise/async/model.rb @@ -50,7 +50,9 @@ def devise_pending_notifications private def deliver_mail_later(notification, model, args) - devise_mailer.send(notification, model, *args).deliver_later + devise_mailer. + send(notification, model, *args). + deliver_later(queue: Devise::Async.queue) end end end diff --git a/spec/devise/async_spec.rb b/spec/devise/async_spec.rb index 54d89e8..cdc0cfc 100644 --- a/spec/devise/async_spec.rb +++ b/spec/devise/async_spec.rb @@ -10,4 +10,12 @@ expect(described_class.enabled).to eq(false) described_class.enabled = initial_enabled end + + it 'stores queue config' do + initial_queue = described_class.queue + + described_class.queue = :critical + expect(described_class.queue).to eq(:critical) + described_class.queue = initial_queue + end end