美文网首页
Rails-使用Sidekiq异步发送Email时报错总结

Rails-使用Sidekiq异步发送Email时报错总结

作者: hjiangwen | 来源:发表于2017-02-12 23:45 被阅读55次

总结几个跟异步发邮件失败的原因:

  1. 修改应用/config目录下的文件后得重启服务器,代码才能生效。例如在/config/environments/development.rb修改了smtp配置。
  2. 修改跟Sidekiq的Worker后,要重启Sidekiq,代码才能生效。例如:修改了/app/workers/mail_worker.rb中的代码。
  • 只能传递基本参数给Worker,如:不能直接传送Model对象给Worker,只能传递id,然后在Worker中再创建Model对象。否则Sidekiq会报错,可以在Sidekiq控制台观察,一个任务Start后没有Done。
  1. smtp服务对发邮件次数有限制,如:我用网易邮件1天发送了40条邮件后就无法发送了。短时间内使用新浪发送同样信息的邮件时会发不出去。

如何判断是哪个因素导致的:

  1. smtp服务是否可以正常使用?
    可以在控制台发送Email,见StackOverflow: Send email from rails console
  • 有无执行异步任务?
    在控制台观察Sidekiq执行该任务后有没有停止

领悟:

出问题时得把逻辑拆分开来,分别检测,不然容易解决这边的问题,那边又出问题。

相关文章

网友评论

      本文标题:Rails-使用Sidekiq异步发送Email时报错总结

      本文链接:https://www.haomeiwen.com/subject/gbczittx.html