【发布时间】:2019-01-16 23:03:51
【问题描述】:
我已将crontab 与whenever gem 设置为定时发送电子邮件。 Cron 只是调用 rake 任务,它收集所有电子邮件并循环发送它们。我的问题是我是否需要一些队列系统来保证代码不会崩溃?我的意思是当我收集 1000 封电子邮件并循环发送它们时,这是否被认为是不好的做法?
正如我所见,我可以捕捉到错误,但不是全部(也许......?)。在 mailgun 文档中 https://documentation.mailgun.com/en/latest/best_practices.html#bounce-and-esp-feedback-handling
如果我愿意,我将不得不通过他们的 api 来获取退回邮件并重新发送邮件......如此痛苦的方法。不要误会我的意思,我仍然将 mailgun 视为一项服务。
【问题讨论】:
-
你的循环能处理异常/中断吗?
-
我猜是的。我没有真正的测试。我的意思是在 rake 任务处理错误中起作用。要发送邮件,我将使用 mailgun
-
所以电子邮件存储在某个地方?难道你没有机会添加一个它确实发送的标志,并在 rake 任务的 where 子句中使用它吗?如果没有发送电子邮件,它将被下一个 rake 任务接收。
-
当您的邮件提供商在您的 rake 任务中失败时会发生什么?
-
正是这个问题,如何挽救该错误。我想我将不得不使用一些 api 来获取该信息。我还不知道。 @bo-oz 我应该什么时候添加这个标志?我的意思是我在运行 send 之后才这样做,所以这不是问题,但 Aaron 的观点是正确的,如果一切顺利,但 mailgun 没有发送邮件,则标志设置错误
标签: ruby-on-rails ruby cron rake-task