Class FlowControl (2.18.0)

FlowControl(
    max_bytes: int = 104857600,
    max_messages: int = 1000,
    max_lease_duration: float = 3600,
    min_duration_per_lease_extension: float = 0,
    max_duration_per_lease_extension: float = 0,
)

The settings for controlling the rate at which messages are pulled with an asynchronous subscription.

Attributes

NameDescription
max_bytes int
The maximum total size of received - but not yet processed - messages before pausing the message stream. Defaults to 100 MiB.
max_messages int
The maximum number of received - but not yet processed - messages before pausing the message stream. Defaults to 1000.
max_lease_duration float
The maximum amount of time in seconds to hold a lease on a message before dropping it from the lease management. Defaults to 1 hour.
min_duration_per_lease_extension float
The min amount of time in seconds for a single lease extension attempt. Must be between 10 and 600 (inclusive). Ignored by default, but set to 60 seconds if the subscription has exactly-once delivery enabled.
max_duration_per_lease_extension float
The max amount of time in seconds for a single lease extension attempt. Bounds the delay before a message redelivery if the subscriber fails to extend the deadline. Must be between 10 and 600 (inclusive). Ignored if set to 0.

Methods

FlowControl

FlowControl(
    max_bytes: int = 104857600,
    max_messages: int = 1000,
    max_lease_duration: float = 3600,
    min_duration_per_lease_extension: float = 0,
    max_duration_per_lease_extension: float = 0,
)

Create new instance of FlowControl(max_bytes, max_messages, max_lease_duration, min_duration_per_lease_extension, max_duration_per_lease_extension)