che*_*ell 6 ruby ruby-on-rails delayed-job ruby-on-rails-3
我是一个尝试使用delayed_job的NOOB.
我想在使用延迟作业成功发送邮件后更新用户模型.
发送电子邮件:
UserMailer.delay.welcome_email(user)
Run Code Online (Sandbox Code Playgroud)
如果发送的邮件成功执行以下操作:
User.update_attributes(:emailed => true)
Run Code Online (Sandbox Code Playgroud)
如何在成功发送电子邮件时获得回叫或触发器?
Sim*_*tti 10
您需要创建一个Job对象而不是调用#delay帮助器.您可以使用success钩子来执行回调.
class WelcomeEmailJob < Struct.new(:user_id)
def perform
UserMailer.welcome_email(user)
end
def success(job)
user.update_attribute(:emailed, true)
end
private
def user
@user ||= User.find(user_id)
end
end
Delayed::Job.enqueue WelcomeEmailJob.new(user.id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |