e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # We cannot use Sidekiq's retry feature here because we need to retry per
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # OntologyVersion in the queue of OntologyVersions
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # queue is an array of triples like
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # [ontology_version_id,
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # {fast_parse: true/false, files_to_parse_afterwards: array of strings},
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # try_count]
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # where try_count is the number of the next evaluation attempt
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa timeout_job_id = ::TimeoutWorker.start_timeout_clock(@version_id)
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa rescue Hets::ConcurrentEvaluator::AlreadyEvaluatingError
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa @concurrency_issue_handled = handle_concurrency_issue
ef6e04cd2f21652b42d621a4cfddb58010329063Tom Gehrke rescue HetsInstance::NoSelectableHetsInstanceError => e
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa Sidekiq::Status.unschedule(timeout_job_id) if timeout_job_id
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa if @version_with_options_queue.tail.any? && !@concurrency_issue_handled
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa self.class.perform_async(@version_with_options_queue.tail)
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa @version_with_options_queue = version_with_options_queue
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa @version_id, @options, @try_count = @version_with_options_queue.head
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # At this point, it was already tried, hence we include equality
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa SequentialOntologyParsingWorker.perform_async(@version_id, @options)
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa self.class.perform_async(rotate_queue_and_increment_try_count)
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa version_with_next_options = [@version_id, @options, @try_count + 1]