Задержка работы для отправки писем в ruby ​​на рельсах - PullRequest
0 голосов
/ 14 декабря 2011

Я создаю электронную почту, где я анализирую файл .csv, который состоит из идентификаторов электронной почты. Вот код

File.open("#{Rails.root.to_s}/public/files/#{params["file"].original_filename}", "wb"){|file| file.write(params["file"].read) }

arr_of_arrs = CSV.read("#{Rails.root.to_s}/public/files/#{params["file"].original_filename}") 
 puts arr_of_arrs
    arr_of_arrs.each do |i|

Вот процесс отправки почты, который вызывается в моем контроллере

Class.method (я [0]). Доставка)

И я звоню в ActionMailer для отправки электронных писем, которые находятся в файле .csv. И я использую AWS SES для отправки писем.

Моя проблема заключается в том, что, когда не удается отправить электронное письмо на определенный адрес, отправка всей электронной почты прекращается, и он не отправляет электронные письма на остальную часть адреса. Но даже после сбоя у него должна быть возможность отправить электронное письмо по остальным адресам, как я могу справиться с этой проблемой, так как я новичок в ruby ​​on rails.

1 Ответ

2 голосов
/ 14 декабря 2011

Похоже, это не имеет никакого отношения к delayed_job.

Чтобы не останавливать оставшиеся электронные письма, перехватите исключение, которое прерывает цикл:

arr_of_arrs.each do |i|
  begin
    Class.method(i[0]).deliver
  rescue => e
    # perhaps you'd like to log e's detail here
  end
end  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...