You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: structured_logger.rb
    path of file: ./repos/gitlabhq/lib/gitlab/sidekiq_logging
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

require 'active_record'
require 'active_record/log_subscriber'
require 'sidekiq/job_logger'
require 'sidekiq/job_retr
    
      def call(job, queue)
        started_time = get_time
        base_payload = parse_job(job)

        ActiveRecord::LogSubscriber.reset_runtime

        @logger.info log_job_start(job, base_payload)

        yield

        @logger.info log_job_done(job, started_time, base_payload)
      rescue Sidekiq::JobRetry::Handled => job_exception
        # Sidekiq::JobRetry::Handled is raised by the internal Sidekiq
        # processor. It is a wrapper around real exception indicating an
        # exception is already handled by the Job retrier. The real exception
        # should be unwrapped before being logged.
        #
        # For more information:
        # https://github.com/mperham/sidekiq/blob/v5.2.7/lib/sidekiq/processor.rb#L173
        @logger.warn log_job_done(job, started_time, base_payload, job_exception.cause || job_exception)

        raise
      rescue StandardError => job_exception
        @logger.warn log_job_done(job, started_time, base_payload, job_exception)

        raise
      end