我是一个尝试使用 delayed_job 的 NOOB。
我想在使用延迟作业成功发送邮件后更新用户模型。
发送邮件:
UserMailer.delay.welcome_email(user)
如果邮件发送成功,请执行以下操作:
User.update_attributes(:emailed => true)
邮件发送成功后如何回调或触发?
最佳答案
您需要创建一个 Job 对象而不是调用 #delay
帮助程序。您可以使用 success
Hook 来执行回调。
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)
关于ruby-on-rails - 成功发送延迟作业电子邮件后更新用户表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173446/