diff --git a/app/jobs/telegram_notify_upcoming_job.rb b/app/jobs/telegram_notify_upcoming_job.rb index acd2c67656d7529eb468ec8b7f8088ee8e7f3eeb..3c77039abfc16de673d8aaf36965e605d9808d99 100644 --- a/app/jobs/telegram_notify_upcoming_job.rb +++ b/app/jobs/telegram_notify_upcoming_job.rb @@ -2,7 +2,7 @@ class TelegramNotifyUpcomingJob < ApplicationJob queue_as :default def perform(**args) - Session.scheduled.includes(:stage, :assignments).where(stage: { name: ["Stage 1", "Stage 2", "Standby"] }).where(starts_at: Time.now..(Time.now + args[:interval])).order(:starts_at).each do |session| + Session.scheduled.includes(:stage, :assignments).where(stage: { name: ["Stage 1", "Stage 2", "Standby"] }).where(starts_at: (Time.now + args[:offset])..(Time.now + args[:offset] + args[:interval])).order(:starts_at).each do |session| assignees = session.assignments.map(&:user) if assignees.length.positive? notify_names = assignees.map { |a| a.telegram_username ? "@#{a.telegram_username}" : a.name } diff --git a/config/cronotab.rb b/config/cronotab.rb index 04bbfe168995d6dce881cec7131ab97b8b960097..a534585db7444dec21b8cda6cc9dfe8e15660cce 100644 --- a/config/cronotab.rb +++ b/config/cronotab.rb @@ -15,4 +15,4 @@ # Crono.perform(FetchConferenceDataJob, 'rp2024').every 5.minutes -Crono.perform(TelegramNotifyUpcomingJob, interval: 15.minutes).every 15.minutes +Crono.perform(TelegramNotifyUpcomingJob, offset: 15.minutes, interval: 1.minute).every 1.minute