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