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: expiring_soon_notification_worker.rb
    path of file: ./repos/gitlabhq/app/workers/ssh_keys
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

module SshKeys
  class ExpiringSoonNotificationWorker
    include ApplicationWorker

    data_consistency :always

    include CronjobQueue

    feature_category :compliance_management
    idempotent!

    def perform
      # rubocop:disable CodeReuse/ActiveRecord
      User.with_ssh_key_expiring_soon.find_eac
    
    def perform
      # rubocop:disable CodeReuse/ActiveRecord
      User.with_ssh_key_expiring_soon.find_each(batch_size: 10_000) do |user|
        with_context(user: user) do
          Gitlab::AppLogger.info "#{self.class}: Notifying User #{user.id} about expiring soon ssh key(s)"

          keys = user.expiring_soon_and_unnotified_keys

          Keys::ExpiryNotificationService.new(user, { keys: keys, expiring_soon: true }).execute
        end
      end
      # rubocop:enable CodeReuse/ActiveRecord
    end