批量发邮件,遇到 execution expired,exception:Timeout::Error,然后 resque 会停住
stackoverflow 上找了一圈,几个人给的解决方法都是把:smtp 换成:sendmail 但是我这个应用很可能部署在内网里,不能直连外网,只能用 smtp
我现在的想法是把 resque 的批量 job 拆分成每个邮件一个小 job,但这样数量在几万个甚至更多,不知道 resque 能否抗得住
求更好的解决方法
就算是内网也可以用 smtp 啊,难道你的 Web 服务器不上网?
#1 楼 @huacnlee 内部系统,放在 nginx 后面的内网主机里,可以通过连接公网的 smtp 服务器发信,但 sendmail 就不行了。
问题就是如果用 smtp 的话,有时会出现连接超时,一个大 job 执行一半断掉了
begin 呗
resque 底层 redis 是很快的
建一个 smtp 发邮件的 relay 服务器,我刚上两天建了一个,这样绝对不会超时啦!