lib/ci/queue/redis/base.rb in ci-queue-0.23.1 vs lib/ci/queue/redis/base.rb in ci-queue-0.24.0

- old
+ new

@@ -3,10 +3,11 @@ module Queue module Redis class Base include Common + TEN_MINUTES = 60 * 10 CONNECTION_ERRORS = [ ::Redis::BaseConnectionError, ::SocketError, # https://github.com/redis/redis-rb/pull/631 ].freeze @@ -16,9 +17,18 @@ @config = config end def exhausted? queue_initialized? && size == 0 + end + + def expired? + if (created_at = redis.get(key('master-created-at'))) + (created_at.to_f + config.redis_ttl + TEN_MINUTES) < Time.now.to_f + else + # if there is no created at set anymore we assume queue is expired + true + end end def size redis.multi do |transaction| transaction.llen(key('queue'))