Как установить ограничение скорости отправки писем?

Привет, Джош!

Для дайджестов вы можете ограничить это значение до 14 писем в секунду, установив глобальную переменную Discourse равной 420. Это делается следующим образом в файле сборки вашего контейнера:

 DISCOURSE_MAX_DIGESTS_ENQUEUED_PER_30_MINS_PER_SITE: 420

Это не «в точности» то, что вам нужно, но очень близко.

Поскольку 14 писем в секунду (из вашего сообщения), умноженные на 30 секунд, дают 420, эта глобальная настройка ограничит количество дайджестов примерно до 420 каждые 30 минут, как и заявлено в коде:

См. также:

Естественно, если ваш SMTP-канал отправляет и другие письма, вам нужно будет уменьшить это значение; либо вы можете настроить отдельный канал специально для дайджест-писем (как это делаем мы).

Примечание: по умолчанию эта глобальная настройка установлена на 10 000 дайджестов за 30 минут; это довольно много дайджестов в час, если вы спросите меня ;). Поэтому мы установили это значение значительно ниже, чтобы наш ежемесячный счёт от SendGrid оставался «разумным».

30 дайджестов за 30 минут = 1440 в день или примерно 43 200 в месяц (потому что до того, как я внес это изменение несколько дней назад, мы отправляли очень много дайджестов). В следующем месяце я увеличу это значение до примерно 60 дайджестов за 30 минут, то есть около 86 400 дайджестов в месяц с небольшими отклонениями.

Надеюсь, это поможет.