dispatch_worker.rb 505 字节
Newer Older
1 2 3 4 5
module RepositoryCheck
  class DispatchWorker
    include ApplicationWorker
    include CronjobQueue
    include ::EachShardWorker
6 7 8
    include ExclusiveLeaseGuard

    LEASE_TIMEOUT = 1.hour
9 10 11 12

    def perform
      return unless Gitlab::CurrentSettings.repository_checks_enabled

13 14 15 16
      try_obtain_lease do
        each_eligible_shard do |shard_name|
          RepositoryCheck::BatchWorker.perform_async(shard_name)
        end
17 18
      end
    end
19 20 21 22

    def lease_timeout
      LEASE_TIMEOUT
    end
23 24
  end
end