class SidekiqRobustJob::MissedJobsScheduler

Attributes

scheduled_jobs_repository[R]
serializer[R]

Public Class Methods

new(cron:, scheduled_jobs_repository:, job_class:) click to toggle source
# File lib/sidekiq_robust_job/missed_jobs_scheduler.rb, line 6
def initialize(cron:, scheduled_jobs_repository:, job_class:)
  @serializer = MissedJobSerializer.new(cron, job_class)
  @scheduled_jobs_repository = scheduled_jobs_repository
end

Public Instance Methods

schedule() click to toggle source
# File lib/sidekiq_robust_job/missed_jobs_scheduler.rb, line 11
def schedule
  scheduled_jobs_repository.new(serializer.serialize).tap do |job|
    if job.valid?
      job.save
    else
      raise_invalid_job(job)
    end
  end
end

Private Instance Methods

raise_invalid_job(job) click to toggle source
# File lib/sidekiq_robust_job/missed_jobs_scheduler.rb, line 23
def raise_invalid_job(job)
  errors = job.errors.join(",")
  raise "could not save job: #{errors}"
end