Mailer ActionMailer 的 execution expired 怎么解决?

suupic · December 22, 2011 · Last by ericguo replied at February 04, 2013 · 10872 hits

批量发邮件,遇到 execution expired,exception:Timeout::Error,然后 resque 会停住

stackoverflow 上找了一圈,几个人给的解决方法都是把:smtp 换成:sendmail 但是我这个应用很可能部署在内网里,不能直连外网,只能用 smtp

我现在的想法是把 resque 的批量 job 拆分成每个邮件一个小 job,但这样数量在几万个甚至更多,不知道 resque 能否抗得住

求更好的解决方法

就算是内网也可以用 smtp 啊,难道你的 Web 服务器不上网?

#1 楼 @huacnlee 内部系统,放在 nginx 后面的内网主机里,可以通过连接公网的 smtp 服务器发信,但 sendmail 就不行了。

问题就是如果用 smtp 的话,有时会出现连接超时,一个大 job 执行一半断掉了

resque 底层 redis 是很快的

建一个 smtp 发邮件的 relay 服务器,我刚上两天建了一个,这样绝对不会超时啦!

You need to Sign in before reply, if you don't have an account, please Sign up first.