You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
452 B

  1. # frozen_string_literal: true
  2. class Scheduler::ScheduledStatusesScheduler
  3. include Sidekiq::Worker
  4. sidekiq_options unique: :until_executed, retry: 0
  5. def perform
  6. due_statuses.find_each do |scheduled_status|
  7. PublishScheduledStatusWorker.perform_at(scheduled_status.scheduled_at)
  8. end
  9. end
  10. private
  11. def due_statuses
  12. ScheduledStatus.where('scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
  13. end
  14. end