在Rails中与ActionJob
接口的常见模式是使用perform()
方法设置作业,该方法通过perform_now
或perform_later
在Mailers的特殊情况下,您可以直接致电deliver_now
或deliver_later
,因为ActionJob
与ActionMailer
完全整合。
rails documentation有以下评论 -
# If you want to send the email now use #deliver_now
UserMailer.welcome(@user).deliver_now
# If you want to send the email through Active Job use #deliver_later
UserMailer.welcome(@user).deliver_later
措辞似乎deliver_now
将不使用ActiveJob
发送邮件。这是正确的,如果是这样,deliver_now
和deliver_later
之间的真正区别是什么?一个人不是异步的吗?
同样,同样的差异适用于perform_now
和perform_later
吗?
谢谢!