demarches-normaliennes/app/jobs/cron/auto_archive_procedure_job.rb

26 lines
729 B
Ruby

class Cron::AutoArchiveProcedureJob < Cron::CronJob
self.schedule_expression = "every 1 minute"
def perform(*args)
procedures_to_close.each do |procedure|
# A buggy procedure should NEVER prevent the closing of another procedure
# we therefore exceptionally add a `begin resue` block.
begin
procedure
.dossiers
.state_en_construction
.find_each(&:passer_automatiquement_en_instruction!)
procedure.close!
rescue StandardError => e
Raven.capture_exception(e, extra: { procedure_id: procedure.id })
end
end
end
def procedures_to_close
Procedure
.publiees
.where("auto_archive_on <= ?", Time.zone.today)
end
end