【发布时间】:2013-11-26 02:06:43
【问题描述】:
我有一个功能,我必须从 csv 文件上传大量记录。如果任何一条记录无效,则不应上传任何数据。需要将包含无效记录错误的 csv 文件发送给上传数据的用户。我正在使用 rails (3.2)、sidekiq (2.16.1) 和 mysql。
所有邮件(设计和自定义)邮件都已送达,我会在我的 gmail 收件箱中收到它们。上述功能在转移到 sidekiq 之前运行良好。
用户模型
#works n gets delivered in inbox
Notifier.send_welcome_mail(self).deliver
Sidekiq 工作者
class UploadWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(user_id, inspection_id)
user = User.find(user_id)
inspection = Inspection.find(inspection_id)
err = false
#check if all data is valid and upload if valid
#
...
#shows in development log but doesnt get delivered in inbox.
Notifier.delay.upload_success(user, inspection) if err
Notifier.delay.upload_failed(user, inspection) unless err
end
end
开发日志
Sent mail to someone@gmail.com (142ms)
Date: Wed, 13 Nov 2013 17:24:25 +0530
To: someone@gmail.com
Message-ID: <5283687179a92_203f59f273e3@gmail.mail>
Subject: ["someone@gmail.com"] Upload failed
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
sidekiq 日志
2013-11-13T13:21:20Z 10064 TID-1n41gu UploadWorker JID-2d2c930601caf6a62c86e142 INFO: start
2013-11-13T13:22:13Z 10064 TID-1n41gu UploadWorker JID-2d2c930601caf6a62c86e142 INFO: done: 52.858 sec
2013-11-13T13:22:13Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-bcae8ea4974ecfe280e411bd INFO: start
2013-11-13T13:22:14Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-bcae8ea4974ecfe280e411bd INFO: done: 0.858 sec
2013-11-13T13:23:51Z 10064 TID-1n41gu UploadWorker JID-03fe3dee40f6390f5cec1d93 INFO: start
2013-11-13T13:23:54Z 10064 TID-1n41gu UploadWorker JID-03fe3dee40f6390f5cec1d93 INFO: done: 2.779 sec
2013-11-13T13:23:54Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-44f75877c5919302c9ded4fe INFO: start
2013-11-13T13:23:54Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-44f75877c5919302c9ded4fe INFO: done: 0.038 sec
问题是,只有来自 sidekiq 的邮件在日志中显示为已发送但未送达。来自设计自定义邮件的其他邮件确实会送达。
【问题讨论】:
-
同样的问题有什么解决办法吗?
标签: ruby-on-rails-3 actionmailer sidekiq