You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In HTTP/2, opening a request means opening a new HTTP/2 stream (see the module documentation). This means that a request could fail because the maximum number of concurrent streams allowed by the server has been reached. In that case, the error reason :too_many_concurrent_requests is returned. If you want to avoid incurring in this error, you can retrieve the value of the maximum number of concurrent streams supported by the server through get_server_setting/2 (passing in the :max_concurrent_streams setting name).
I think it'd be ideal that if a Finch.HTTP2.Pool process has maxed out its allowed concurrent streams, the request gets redirected to another available Finch.HTTP2.Pool process if there is one.
I'd be willing to give this a look when I have the time 👍
The text was updated successfully, but these errors were encountered:
@sneako
I really need this feature. Is there any progress on it?
Or can I check open_request_count by myself with Finch? Or can I limit the max concurrent request manually?
When under very high load with many concurrent requests, some requests may fail with
From the
Mint.HTTP2.request/5
docs:It looks like this check is very cheap on the Mint side: it needs to check against a field in the
conn
. See https://github.com/elixir-mint/mint/blob/367230ff0565df69125f93204fcb496774bf69a9/lib/mint/http2.ex#L1065-L1070. There's alsoMint.HTTP2.open_request_count/1
for checking the currently open number of requests for aconn
.I think it'd be ideal that if a
Finch.HTTP2.Pool
process has maxed out its allowed concurrent streams, the request gets redirected to another availableFinch.HTTP2.Pool
process if there is one.I'd be willing to give this a look when I have the time 👍
The text was updated successfully, but these errors were encountered: