Я настроил Devise для асинхронной отправки электронной почты, например:
class User < ApplicationRecord
...
def send_devise_notification(notification, *args)
DeviseMailerJob.perform_now(devise_mailer, notification, id, *args)
end
end
class DeviseMailerJob < ApplicationJob
queue_as :mailers
def perform(devise_mailer, method, user_id, *args)
user = User.find(user_id)
devise_mailer.send(method, user, *args).deliver_now
end
end
Мой sidekiq.yml
выглядит следующим образом:
---
:concurrency: 5
:queues:
- mailers
Я могу перейти на страницу регистрации, зарегистрируйтесь, и я увижу, что в журналах все выглядит нормально:
2018-10-09T10:02:27.793848+00:00 app[web.1]: I,
[2018-10-09T10:02:27.793770 #4] INFO -- :
[646a58f7-9588-4a1f-a258-9fbede3cf87d] [ActiveJob] [DeviseMailerJob]
[5ceac77e-d498-4436-8f12-7cd4aff2c004] Performed DeviseMailerJob (Job ID:
5ceac77e-d498-4436-8f12-7cd4aff2c004) from Sidekiq(mailers) in 3301.06ms
Но задание не отображается на панели управления Sidekiq.Однако я получаю подтверждение по электронной почте.Таким образом, задание обрабатывается .Только я не могу быть уверен, что Sidekiq справляется с этим.
Глядя на журналы Heroku, я не вижу никаких журналов от Sidekiq.На панели инструментов я ожидал бы увидеть «обработанный» прирост подсчета для каждого отправленного электронного письма.Я не уверен, как это расследовать.
С Heroku, какой лучший способ увидеть, работает ли Sidekiq с работой?Есть ли в моем коде что-то, что Sidekiq не выполняет эту работу?