Sha256: e7f18791318e3e43a353c2b2b903f09c1cdc8aeebdee48ee77f202fea829505c

Contents?: true

Size: 1.5 KB

Versions: 5

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module QasDockGem
  class RedisService
    def initialize
      require 'logger'
      require 'redis'
      @logger = Logger.new($stdout)
    end

    def initialize_redis
      redis_params = { host: ENV['uri_redis'], port: 6379, connect_timeout: 0.5, read_timeout: 1.0, write_timeout: 1.0 }
      @redis = Redis.new(redis_params) # Realiza a tentativa de conexão com o redis com os params informados
      begin
        @redis.ping
        @redis
      rescue StandardError => e
        @redis = nil
        @logger.error("Params Redis: #{JSON.pretty_generate(JSON.parse(redis_params.to_json))}")
        @logger.error("Exceção retornada do Redis: #{e.inspect} - Mensagem: #{e.message}")
      end
    end

    def get_key_redis(key)
      @logger.info("Buscando chave #{key} no Redis")
      @redis = initialize_redis if @redis.nil?
      begin
        @redis.get(key)
      rescue StandardError => e
        @logger.error("Exceção retornada do redis ao consultar a chave: #{e}")
        nil
      end
    end

    def set_key_redis(key, value, ttl)
      @logger.info("Cadastrando chave #{key} com valor: #{value} e tempo de duração: #{ttl}")
      @redis = initialize_redis if @redis.nil?
      begin
        set_redis = @redis.set(key, value, ex: ttl)
        @logger.info('Chave cadastrada com sucesso no redis') if set_redis == 'OK'
      rescue StandardError => e
        @logger.error("Exceção retornada do redis ao cadastrar a chave: #{e}")
        nil
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
qas_dock_gem-0.1.34 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.33 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.32 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.31 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.30 lib/qas_dock_gem/services/redis_services.rb