Class: ModelContextProtocol::Server::RedisPoolManager
- Inherits:
-
Object
- Object
- ModelContextProtocol::Server::RedisPoolManager
- Defined in:
- lib/model_context_protocol/server/redis_pool_manager.rb
Instance Attribute Summary collapse
-
#pool ⇒ Object
readonly
Returns the value of attribute pool.
Instance Method Summary collapse
- #configure_reaper(enabled:, interval: 60, idle_timeout: 300) ⇒ Object
-
#initialize(redis_url:, pool_size: 20, pool_timeout: 5, ssl_params: nil) ⇒ RedisPoolManager
constructor
A new instance of RedisPoolManager.
- #reap_now ⇒ Object
- #shutdown ⇒ Object
- #start ⇒ Object
- #stats ⇒ Object
Constructor Details
#initialize(redis_url:, pool_size: 20, pool_timeout: 5, ssl_params: nil) ⇒ RedisPoolManager
Returns a new instance of RedisPoolManager.
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 5 def initialize(redis_url:, pool_size: 20, pool_timeout: 5, ssl_params: nil) @redis_url = redis_url @pool_size = pool_size @pool_timeout = pool_timeout @ssl_params = ssl_params @pool = nil @reaper_thread = nil @reaper_config = { enabled: false, interval: 60, idle_timeout: 300 } end |
Instance Attribute Details
#pool ⇒ Object (readonly)
Returns the value of attribute pool.
3 4 5 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 3 def pool @pool end |
Instance Method Details
#configure_reaper(enabled:, interval: 60, idle_timeout: 300) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 19 def configure_reaper(enabled:, interval: 60, idle_timeout: 300) @reaper_config = { enabled: enabled, interval: interval, idle_timeout: idle_timeout } end |
#reap_now ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 39 def reap_now return unless @pool @pool.reap(idle_seconds: @reaper_config[:idle_timeout]) do |conn| conn.close end end |
#shutdown ⇒ Object
34 35 36 37 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 34 def shutdown stop_reaper close_pool end |
#start ⇒ Object
27 28 29 30 31 32 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 27 def start validate! create_pool start_reaper if @reaper_config[:enabled] true end |
#stats ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/model_context_protocol/server/redis_pool_manager.rb', line 47 def stats return {} unless @pool { size: @pool.size, available: @pool.available, idle: @pool.instance_variable_get(:@idle_since)&.size || 0 } end |