В приложении Rails электронная почта должна отправляться в фоновом режиме или синхронно?
-
19-09-2019 - |
Вопрос
Мы приближаемся к выпуску нашего нового приложения для рельсов, и пока интерес кажется очень сильным, и мы немного обеспокоены тем, где будут узкие места.Кажется, это системные электронные письма при регистрации и в других ситуациях.Это верно?
Следует ли отправлять отдельные электронные письма пользователям асинхронно в фоновом режиме?Если да, то какое решение будет лучшим?
Я рассмотрел несколько решений и не нашел ничего определенного.
Решение
Я бы сказал, что это зависит от ваших требований.Если вам нужно иметь возможность сообщить пользователю, что отправка почты не удалась, сделайте это в том же потоке.
В противном случае отправка почты должна поддерживать такие вещи, как повторные попытки и т. д., поэтому я бы поместил сообщение в очередь/файловую систему/таблицу базы данных/и т. д. и поручил другому потоку/процессу разобраться с деталями отправки.
Другие советы
На заднем плане с помощью http://github.com/tobi/delayed_job
Та же тема, если вы спросите меня....путем создания файла в папке перетаскивания, который подхватывает сервер электронной почты.Тогда не будет слишком много накладных расходов, поэтому разделение потоков не имеет особого смысла.
По крайней мере, я всегда так с этим справляюсь.