Class: ModelContextProtocol::Server::RedisConfig

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/model_context_protocol/server/redis_config.rb

Defined Under Namespace

Classes: Configuration, NotConfiguredError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRedisConfig

Returns a new instance of RedisConfig.



43
44
45
# File 'lib/model_context_protocol/server/redis_config.rb', line 43

def initialize
  reset!
end

Instance Attribute Details

#managerObject (readonly)

Returns the value of attribute manager.



13
14
15
# File 'lib/model_context_protocol/server/redis_config.rb', line 13

def manager
  @manager
end

Class Method Details

.configure(&block) ⇒ Object



15
16
17
# File 'lib/model_context_protocol/server/redis_config.rb', line 15

def self.configure(&block)
  instance.configure(&block)
end

.configured?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/model_context_protocol/server/redis_config.rb', line 19

def self.configured?
  instance.configured?
end

.poolObject



23
24
25
# File 'lib/model_context_protocol/server/redis_config.rb', line 23

def self.pool
  instance.pool
end

.pool_managerObject



39
40
41
# File 'lib/model_context_protocol/server/redis_config.rb', line 39

def self.pool_manager
  instance.manager
end

.reset!Object



31
32
33
# File 'lib/model_context_protocol/server/redis_config.rb', line 31

def self.reset!
  instance.reset!
end

.shutdown!Object



27
28
29
# File 'lib/model_context_protocol/server/redis_config.rb', line 27

def self.shutdown!
  instance.shutdown!
end

.statsObject



35
36
37
# File 'lib/model_context_protocol/server/redis_config.rb', line 35

def self.stats
  instance.stats
end

Instance Method Details

#configure {|config| ... } ⇒ Object

Yields:

  • (config)


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/model_context_protocol/server/redis_config.rb', line 47

def configure(&block)
  shutdown! if configured?

  config = Configuration.new
  yield(config) if block_given?

  @manager = Server::RedisPoolManager.new(
    redis_url: config.redis_url,
    pool_size: config.pool_size,
    pool_timeout: config.pool_timeout
  )

  if config.enable_reaper
    @manager.configure_reaper(
      enabled: true,
      interval: config.reaper_interval,
      idle_timeout: config.idle_timeout
    )
  end

  @manager.start
end

#configured?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/model_context_protocol/server/redis_config.rb', line 70

def configured?
  !@manager.nil? && !@manager.pool.nil?
end

#poolObject

Raises:



74
75
76
77
# File 'lib/model_context_protocol/server/redis_config.rb', line 74

def pool
  raise NotConfiguredError unless configured?
  @manager.pool
end

#reset!Object



84
85
86
87
# File 'lib/model_context_protocol/server/redis_config.rb', line 84

def reset!
  shutdown!
  @manager = nil
end

#shutdown!Object



79
80
81
82
# File 'lib/model_context_protocol/server/redis_config.rb', line 79

def shutdown!
  @manager&.shutdown
  @manager = nil
end

#statsObject



89
90
91
92
# File 'lib/model_context_protocol/server/redis_config.rb', line 89

def stats
  return {} unless configured?
  @manager.stats
end