module SidekiqRobustJob::Model

Public Class Methods

save(job) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 23
def self.save(job)
  job.save!
end

Public Instance Methods

assign_sidekiq_data(execute_at:, sidekiq_jid:) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 85
def assign_sidekiq_data(execute_at:, sidekiq_jid:)
  self.execute_at = execute_at
  self.sidekiq_jid = sidekiq_jid
end
call(job_class_resolver: Object) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 81
def call(job_class_resolver: Object)
  job_class_resolver.const_get(job_class).new.call(*arguments)
end
completed(memory_monitor:, clock: SidekiqRobustJob.configuration.clock) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 46
def completed(memory_monitor:, clock: SidekiqRobustJob.configuration.clock)
  self.memory_usage_after_processing_in_megabytes = memory_monitor.mb
  self.memory_usage_change_in_megabytes = memory_usage_after_processing_in_megabytes - memory_usage_before_processing_in_megabytes
  self.completed_at = clock.now
  self.dropped_at = nil
  self.dropped_by_job_id = nil
  self.error_type = nil
  self.error_message = nil
  self.failed_at = nil
end
completed?() click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 32
def completed?
  completed_at.present?
end
drop(dropped_by_job_id:, clock: SidekiqRobustJob.configuration.clock) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 70
def drop(dropped_by_job_id:, clock: SidekiqRobustJob.configuration.clock)
  self.dropped_at = clock.now
  self.dropped_by_job_id = dropped_by_job_id
end
dropped?() click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 36
def dropped?
  dropped_at.present?
end
execute() click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 75
def execute
  SidekiqRobustJob::DependenciesContainer["uniqueness_strategy_resolver"]
    .resolve(uniqueness_strategy)
    .execute(self)
end
failed(error, clock: SidekiqRobustJob.configuration.clock) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 57
def failed(error, clock: SidekiqRobustJob.configuration.clock)
  self.error_type = error.class
  self.error_message = error.message
  self.failed_at = clock.now
end
reschedule(job_class_resolver: Object) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 63
def reschedule(job_class_resolver: Object)
  sidekiq_job = job_class_resolver.const_get(job_class)
  interval_in_seconds = sidekiq_job.sidekiq_options.fetch("reschedule_interval_in_seconds", 5)

  sidekiq_job.original_perform_in(interval_in_seconds.seconds, id)
end
started(memory_monitor:, clock: SidekiqRobustJob.configuration.clock) click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 40
def started(memory_monitor:, clock: SidekiqRobustJob.configuration.clock)
  self.memory_usage_before_processing_in_megabytes = memory_monitor.mb
  self.attempts += 1
  self.started_at = clock.now
end
unprocessable?() click to toggle source
# File lib/sidekiq_robust_job/model.rb, line 28
def unprocessable?
  completed? || dropped?
end