Actionmailer, тайм-ауты и возобновить, если ошибка? - PullRequest
0 голосов
/ 14 июля 2011

Рельсы 2.3.5

Я добавляю систему электронной почты в приложение типа «заявки». Этим утром почтовый сервер остановился на несколько минут, и я заметил (по крайней мере, в режиме разработки), что Rails просто остановится и вернется с ошибкой тайм-аута.

С точки зрения пользователя, похоже, что результат только что выполненного действия (создание, изменение, комментирование, выполнение и т. Д.) Не дал результата.

1) Существует ли какой-либо метод для продолжения после ошибки actionmailer, например VB 'on error resume next', чтобы приложение просто не останавливалось в процессе для пользователя из-за проблемы с отправкой уведомляющего электронного письма?

2) В методах контроллера я отправляю электронное письмо, а затем выполняю рендеринг / перенаправления. Можно ли завершить действие по оформлению заявки и перевести пользователя на новую / следующую страницу до отправки электронного письма? Подобно тому, как пользователь нажимает «завершить», а действие «завершить» устанавливает флэш-сообщение и перенаправляет на страницу индекса, И ИХ запускается actionmailer?

1 Ответ

1 голос
/ 14 июля 2011

Я бы настоятельно рекомендовал изучить что-то вроде DelayedJob или Resque, чтобы передать его из приложения для обработки писем в фоновом режиме - таким образом, конечный пользователь не ожидает завершения процесса, а затем вы можете обрабатывать повторные попытки и т. Д. на заднем плане.

...