Class: Ollama::Policies::Timeout
- Defined in:
- lib/ollama/policies/timeout.rb
Overview
Timeout policy - enforces request and connection timeouts
Instance Attribute Summary collapse
-
#connect_timeout ⇒ Object
readonly
Returns the value of attribute connect_timeout.
-
#hooks ⇒ Object
readonly
Returns the value of attribute hooks.
-
#read_timeout ⇒ Object
readonly
Returns the value of attribute read_timeout.
-
#write_timeout ⇒ Object
readonly
Returns the value of attribute write_timeout.
Instance Method Summary collapse
- #around(request, env, &block) ⇒ Object
-
#initialize(connect_timeout: 5.0, read_timeout: 60.0, write_timeout: 10.0, hooks: {}) ⇒ Timeout
constructor
A new instance of Timeout.
Constructor Details
#initialize(connect_timeout: 5.0, read_timeout: 60.0, write_timeout: 10.0, hooks: {}) ⇒ Timeout
Returns a new instance of Timeout.
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/ollama/policies/timeout.rb', line 16 def initialize( connect_timeout: 5.0, read_timeout: 60.0, write_timeout: 10.0, hooks: {} ) super() @connect_timeout = connect_timeout @read_timeout = read_timeout @write_timeout = write_timeout @hooks = hooks end |
Instance Attribute Details
#connect_timeout ⇒ Object (readonly)
Returns the value of attribute connect_timeout.
10 11 12 |
# File 'lib/ollama/policies/timeout.rb', line 10 def connect_timeout @connect_timeout end |
#hooks ⇒ Object (readonly)
Returns the value of attribute hooks.
10 11 12 |
# File 'lib/ollama/policies/timeout.rb', line 10 def hooks @hooks end |
#read_timeout ⇒ Object (readonly)
Returns the value of attribute read_timeout.
10 11 12 |
# File 'lib/ollama/policies/timeout.rb', line 10 def read_timeout @read_timeout end |
#write_timeout ⇒ Object (readonly)
Returns the value of attribute write_timeout.
10 11 12 |
# File 'lib/ollama/policies/timeout.rb', line 10 def write_timeout @write_timeout end |
Instance Method Details
#around(request, env, &block) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ollama/policies/timeout.rb', line 29 def around(request, env, &block) # Inject timeouts into request metadata env[:timeouts] ||= {} env[:timeouts][:connect] = @connect_timeout env[:timeouts][:read] = @read_timeout env[:timeouts][:write] = @write_timeout block.call(request, env) rescue TimeoutError, Net::ReadTimeout, Net::OpenTimeout => e @hooks[:on_timeout]&.call(request, env, e) raise end |