Annotate all sidekiq workers with bound, latency_sensitivity and category labels

Part of &96, proposal in epic.


For each sidekiq worker class, we add three mandatory attributes:

  1. latency_sensitive: true or false. Whether the execution of this job is sensitive to delays. For example, post_commit is, but housekeeping is not.
  2. bound: :cpu, :io or :memory. Whether the job is IO-bound, CPU-bound, or memory-bound.
  3. category: an arbitrary category/grouping for the worker.

These are added directly to the worker class in Ruby:

class MyWorker
  include ApplicationWorker

  latency_sensitive true
  bound :cpu
  category :verify

  def perform()
    # ....
  end
end

blocked on gitlab-org/gitlab!17501 (merged)

Edited by Andrew Newdigate