summaryrefslogtreecommitdiff
path: root/lib/gitlab/sidekiq_versioning/worker.rb
blob: fe9bae6b8a12a86cc20d32ca079da90e78d69fe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

module Gitlab
  module SidekiqVersioning
    module Worker
      extend ActiveSupport::Concern

      included do
        version 0

        attr_writer :job_version
      end

      class_methods do
        def version(new_version = nil)
          if new_version
            sidekiq_options version: new_version.to_i
          else
            get_sidekiq_options['version']
          end
        end
      end

      # Version is not set if `new.perform` is called directly,
      # and in that case we fallback to latest version
      def job_version
        @job_version ||= self.class.version
      end
    end
  end
end