Sha256: ca90b6031d0ecee6554eec10f14f3baaf14b5822e2281b96583013ff54267198

Contents?: true

Size: 781 Bytes

Versions: 1

Compression:

Stored size: 781 Bytes

Contents

module CI
  module Queue
    module Redis
      class Supervisor < Base
        def master?
          false
        end

        def total
          wait_for_master(timeout: config.timeout)
          redis.get(key('total')).to_i
        end

        def build
          @build ||= CI::Queue::Redis::BuildRecord.new(self, redis, config)
        end

        def wait_for_workers
          return false unless wait_for_master(timeout: config.timeout)

          yield if block_given?

          time_left = config.timeout
          until exhausted? || time_left <= 0
            sleep 1
            time_left -= 1

            yield if block_given?
          end
          exhausted?
        rescue CI::Queue::Redis::LostMaster
          false
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ci-queue-0.16.0 lib/ci/queue/redis/supervisor.rb