project_import_options.rb 737 Bytes
Newer Older
1 2 3
module ProjectImportOptions
  extend ActiveSupport::Concern

4
  IMPORT_RETRY_COUNT = 5
5

6
  included do
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
    sidekiq_options retry: IMPORT_RETRY_COUNT, status_expiration: StuckImportJobsWorker::IMPORT_JOBS_EXPIRATION

    # We only want to mark the project as failed once we exhausted all retries
    sidekiq_retries_exhausted do |job|
      project = Project.find(job['args'].first)

      action = if project.forked?
                 "fork"
               else
                 "import"
               end

      project.mark_import_as_failed("Every #{action} attempt has failed: #{job['error_message']}. Please try again.")
      Sidekiq.logger.warn "Failed #{job['class']} with #{job['args']}: #{job['error_message']}"
    end
  end
end