Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
val t_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val create :
?max_message_size:int ->
?initial_buffer_size:int ->
?max_buffer_size:int ->
?write_timeout:Core.Time_ns.Span.t ->
?buffering_threshold_in_bytes:int ->
?start_batching_after_num_messages:int ->
unit ->
t
max_message_size
is the maximum message size a reader/writer will accept to receive/send.
max_buffer_size
is the maximum size the internal reader/writer's buffer will ever grow.
write_timeout
is the maximum time allowed for a write operation to complete before an error is reported.
- When the writer's internal buffer is filled at
buffering_threshold_in_bytes
or more, the writer will try to flush its buffer immediately. This is to get good latency and avoid buffering too much when sending big batches of messages.
- If the application hasn't sent any messages in the current Async job and nothing is buffered, the first
start_batching_after_num_messages
messages will be sent immediately. After that the writer will start buffering. This is to give good latency when the application sends a few messages occasionally but still get good throughput when sending a batch of messages.
Note that start_batching_after_num_messages
and buffering_threshold_in_bytes
have somewhat opposite meanings: the former determines when to start batching and the latter determines when to write data that has been batched.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>