我设置了designe以异步方式发送电子邮件,如下所示:
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
做
对于Heroku来说,最好的方法是什么来判断Sidekiq是否在处理工作?我的代码中有没有任何东西表明Sidekiq没有处理这个任务?