f7029615a9
On envoi parfois plus de 20K mails, ce qui pose des problèmes de délivrance et quotas si on le fait d'un coup. On étale donc un peu dans la durée ces envois pour pas limiter le dépassement de quota.
21 lines
560 B
Ruby
21 lines
560 B
Ruby
class NotificationService
|
|
class << self
|
|
SPREAD_DURATION = 2.hours
|
|
|
|
def send_instructeur_email_notification
|
|
instructeurs = Instructeur
|
|
.includes(assign_to: [:procedure])
|
|
.where(assign_tos: { daily_email_notifications_enabled: true })
|
|
|
|
instructeurs.in_batches.each_record do |instructeur|
|
|
data = instructeur.email_notification_data
|
|
|
|
next if data.empty?
|
|
|
|
wait = rand(0..SPREAD_DURATION)
|
|
|
|
InstructeurMailer.send_notifications(instructeur, data).deliver_later(wait:)
|
|
end
|
|
end
|
|
end
|
|
end
|