Reuse body for response
megashchik opened this issue · 3 comments
Greetings!
I have the following problem
I have a fairly heavy query, the answer to which takes up a lot of space
I would like to reuse the buffer for it
This can be done via fasthttp.Post
, but you cannot insert a complex request with headers there
It seems like the solution would be something like this
req := fasthttp.AcquireRequest()
resp := fasthttp.AcquireResponse()
defer fasthttp.ReleaseRequest(req)
defer fasthttp.ReleaseResponse(resp)
// set headers
resp.KeepBodyBuffer = true
err = fasthttp.Do(req, resp)
if err != nil {
return err
}
resp.KeepBodyBuffer = false
...
However, the keepBodyBuffer field is private
Why do you want to set keepBodyBuffer to true? Without it memory is also reused, just between different requests using a pool.
Because I want to use the same big buffer for the response
And after removing it, because such a call rarely works and I don't want a large buffer to end up in the pool
I have a method call where I am asking for a large amount of data still in large chunks
So you want to keep reusing the fasthttp.Response
multiple times for this heavy call, without calling fasthttp.ReleaseResponse(resp)
? Because you have other light calls that you don't want to get mixed up with this heavy call?
If that is the case I understand and I would be open to a pull request that makes KeepBodyBuffer
public with some good documentation.