diff --git a/lib/status-page/services/redis.rb b/lib/status-page/services/redis.rb index 9fad3b3..f95b6b2 100644 --- a/lib/status-page/services/redis.rb +++ b/lib/status-page/services/redis.rb @@ -19,16 +19,18 @@ def config_class def check! time = Time.now.to_fs(:db) - - redis = ::Redis.new(url: config.url) - redis.set(key, time) - fetched = redis.get(key) - - raise "different values (now: #{time}, fetched: #{fetched})" if fetched != time - rescue Exception => e - raise RedisException.new(e.message) - ensure - redis.close + redis = nil + + begin + redis = ::Redis.new(url: config.url) + redis.set(key, time) + fetched = redis.get(key) + raise "different values (now: #{time}, fetched: #{fetched})" if fetched != time + rescue Exception => e + raise RedisException.new(e.message) + ensure + redis.close if redis + end end private