对于关于Sidekiq延迟ActionMailer的基本问题,我们深表歉意。根据{{3}},Sidekiq可以通过简单地说UserMailer.delay_for(1.hour)....
来延迟发送电子邮件。
这是否意味着现在在后台处理,或者它是否意味着它只是延迟发送电子邮件一小时但是一旦那个小时到来,那么电子邮件基本上像常规ActionMailer一样发送,这会减慢减少响应时间?
或者,如果我真的想在后台执行此操作,那么我将不得不做其他sidekiq的东西,比如把它放在一个特定的Worker中,然后以那种方式启动它?
另外,如果我只是通过UserMailer.delay...
来做,我认为我不需要在Heroku上使用工作器dyno来节省一些钱,对吗?
感谢您的帮助!
答案 0 :(得分:4)
是的,对于电子邮件,您不需要做任何其他事情。这就像1小时后打电话给梅勒。您只需要确保不将任何复杂对象传递到邮件程序中,例如用户对象,您应该只传递user_id,因为它将存储在redis中。在Mailer上获取具有给定id的用户对象。