summaryrefslogtreecommitdiff
path: root/app/workers/build_queue_worker.rb
blob: 4cb910e90cae24221f928ac89f37559698ff339e (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
class BuildQueueWorker
  include Sidekiq::Worker
  include BuildQueue

  def perform(build_id)
    Ci::Build.find_by(id: build_id).try do |build|
      project.runners.select do |runner|
        if runner.can_pick?(build)
          # Inject last_update into Redis
          Gitlab::Redis.with do |redis|
            new_update = Time.new.inspect
            redis.set(runner_redis_key(runner), new_update, ex: 60.minutes)
          end
        end
      end
    end
  end

  private

  def runner_redis_key(runner)
    "#{runner.token}_#{runner.tag_list}"
  end

end