06 May 2015

前言

活这么长时间,做过很多让自己懊悔万分的事情,比如:作业没交,考试没考好。今天,加上一条新的记录:工作搞砸了,被老板严厉责骂了。

正文

事情的起因是这样的,周一的时候,针对全体用户发送了一份关于新活动的邮件,然后,我就很happy的写完了如下的话:

task "scholarship" => :environment do 
  User.find_each(batch_size: 1000) do |user|
    UserMailer.scholarship(user.id).deliver
  end

没有想到,要去过滤使用qq授权过来的用户的邮箱(大概有4万个xxx@example.com类型),然后,这些邮件就开始啪啪的发送了,由于邮件实在太多了,两天都没发完。

类似这样qq_connect-105e7c8d95b1cbe60d586c4fe516cd73@example.com邮件发送请求,在sendcloud中一直处于请求状态。昨天,请教了一下前辈,他说,这样发送邮件是有问题的, 排除类似xxx@example.com的邮件,排除使用sql的like语句。今天,特地咨询了一下sendcloud客服(客服凹凸),吧拉吧拉解释了一上午。

中午的时候,人家技术人员给动手了,将请求状态调整为无效邮件,下调了信誉度,限制了请求额度。然后,邮件都再也发不出去了,一份也发不出去了,然后悲剧。老板过来,把我臭骂了一顿, 自己心里也不好好受。反思一下,老板还是很有风度的,虽然分贝高了些,说的确实在理。这件事从头到尾,都是我的错。如果,时光能够倒流,我希望在星期一提交部署的时候,把上面的那段代码 改成如下代码:

task "scholarship" => :environment do 
  User.where("email not like ?", "%@example.com").find_each(batch_size: 1000) do |user|
    UserMailer.scholarship(user.id).deliver
  end
end

如果,时光倒流,我希望,再多向别人确认一下,谨慎一点。就不会发生这个事情了。

如果,时间倒流,我希望,等邮件发完了,再向sendcloud的客服咨询。

如果。。。

无论如何,时间都不会倒流。与其叹息,不如从中吸取教训,吃一辙长一堑,以后,涉及发送邮件或信誉度的问题,要谨慎了谨慎,要小心一些。

后记

以上,就是一条语句引发的惨案。总的来说,知道邮件不能发出去,有没个解决方案时,当时,自己确实咯噔一下,知道坏了。被骂的时候,那种感觉确实羞愧难当。

搞坏了别人的东西的心情,无论何时,都是相当羞愧难受的。

我其实还干过这样的一些事情:

  • 本机部署时,资源未编译,导致网站响应慢
  • 部署mobile项目时,直接挂掉了,后来发现是engine中少写了个括号



傲娇的使用Disqus