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'))