Class: Familia::Connection::FiberConnectionHandler
- Inherits:
-
BaseConnectionHandler
- Object
- BaseConnectionHandler
- Familia::Connection::FiberConnectionHandler
- Defined in:
- lib/familia/connection/handlers.rb
Overview
Checks for fiber-local connections with version validation
Strict Ad-hoc Only. Raise error for transaction, pipeline etc operations.
# Enforce middleware connection constraints
case request.operation
when :transaction
raise Familia::MiddlewareConnectionError,
"Cannot start transaction on middleware-provided connection. " \
"Middleware connections are for ad-hoc commands only."
when :pipeline
raise Familia::MiddlewareConnectionError,
"Cannot start pipeline on middleware-provided connection. " \
"Middleware connections are for ad-hoc commands only."
when :command, nil
# Ad-hoc commands are fine
conn
else
raise "Unknown operation: #{request.operation}"
end
Instance Method Summary collapse
Constructor Details
This class inherits a constructor from Familia::Connection::BaseConnectionHandler
Instance Method Details
#handle(uri) ⇒ Object
150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/familia/connection/handlers.rb', line 150 def handle(uri) return nil unless Fiber[:familia_connection] conn, version = Fiber[:familia_connection] if version == @familia_module.middleware_version @familia_module.trace :DBCLIENT_FIBER, nil, "Using fiber-local connection for #{uri}" conn else # Version mismatch, clear stale connection Fiber[:familia_connection] = nil @familia_module.trace :DBCLIENT_FIBER, nil, 'Cleared stale fiber connection (version mismatch)' nil end end |