【问题标题】:Delayed_Job, How to set a priority for a user_mailer.rb methodDelayed_Job,如何为 user_mailer.rb 方法设置优先级
【发布时间】:2012-09-04 19:30:06
【问题描述】:
我正在使用delayed_job w rails 3来延迟user_mailers,例如:
UserMailer.delay.email_digest(from,email,subject,html,text)
如何添加优先级?默认情况下,所有延迟的作业都设置为优先级 0,对于这个邮件程序,我想用 1 的优先级来降低它的重要性。
可能吗?谢谢
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
delayed-job
【解决方案1】:
优先级或使用哪个队列等选项是延迟方法上的选项,例如
UserMailer.delay(:priority => 2).email_digest(...)
【解决方案2】:
您甚至可以设置队列名称,以便根据使用的任务对其进行分组,
UserMailer.delay(:queue=> "Mailers",:priority=> 1).email_digest(from,email,subject,html,text)
【解决方案3】:
Rails 5
app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
def email_digest(email)
@email = email
mail(to: @email, subject: 'Hello...')
end
end
UserMailer.email_digest("email@domain.com").deliver_later(:priority => 75)
这对我有用