фоновая работа sidekiq для отправки электронной почты и работника heroku

Извините за основной вопрос о том, что Sidekiq задерживает ActionMailer. Согласно этой статье, Sidekiq может задерживать отправку рассылать электронные письма, просто говоря UserMailer.delay_for(1.hour).....

Означает ли это, что теперь это обрабатывается в фоновом режиме, или это просто задерживает отправку электронной почты на час, но как только этот час наступает, электронная почта в основном отправляется как обычный ActionMailer, что замедляет время отклика. ?

Или дело в том, что, если я действительно хочу сделать это в фоновом режиме, мне придется делать другие вещи sidekiq, например, помещать их в конкретный рабочий процесс, а затем запускать его таким образом?

Кроме того, отдельно, если я просто сделаю это через UserMailer.delay..., я предполагаю, что мне не понадобится рабочий динамометр на Heroku, чтобы сэкономить деньги, верно?

Спасибо за помощь!


person noob    schedule 01.06.2013    source источник


Ответы (1)


Да, для писем больше ничего делать не нужно. Это как позвонить в Mailer через 1 час. Вам просто нужно убедиться, что вы не передаете какие-либо сложные объекты в почтовую программу, например пользовательский объект, вы должны передавать только user_id, потому что он будет храниться в Redis. В Mailer извлеките пользовательский объект с заданным идентификатором.

person Ismael    schedule 01.06.2013
comment
Спасибо, так это не замедлит время отклика на сайте, когда Mailer отправляет, скажем, 100 писем через 1 час? Кроме того, что касается передачи любых сложных объектов, означает ли это, что не рекомендуется выполнять какие-либо вычислительные операции в почтовой программе, например, находить всех пользователей с фамилией Smith? Я знаю, что это лучше сделать в модели, но я спрашиваю для примера. Кроме того, нужен ли мне рабочий динамометр на Heroku? Спасибо! - person noob; 01.06.2013
comment
Да, ваше время отклика не пострадает, потому что работа почтовой программы выполняется в фоновом режиме (и позже). Вы должны передавать только простые данные, такие как целые числа, строки и массивы. И снова да, вам нужен дополнительный динамометр на героку. - person Ismael; 02.06.2013