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