Class: StepperMotor::DeleteCompletedJourneysJob

Inherits:
BaseJob
  • Object
show all
Defined in:
lib/stepper_motor/delete_completed_journeys_job.rb

Overview

The purpose of this job is to find journeys which have completed (finished or canceled) some time ago and to delete them. The time is configured in the initializer.

Instance Method Summary collapse

Instance Method Details

#perform(completed_for: StepperMotor.delete_completed_journeys_after) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/stepper_motor/delete_completed_journeys_job.rb', line 6

def perform(completed_for: StepperMotor.delete_completed_journeys_after, **)
  return unless completed_for.present?

  scope = StepperMotor::Journey.where(state: ["finished", "canceled"], updated_at: ..completed_for.ago)
  scope.in_batches.each do |rel|
    rel.delete_all
  rescue => e
    Rails.try(:error).try(:report, e)
  end
end