StreamingPull

Struct StreamingPull 

Source
pub struct StreamingPull { /* private fields */ }
Expand description

Builder for the client::Subscriber::streaming_pull method.

Implementations§

Source§

impl StreamingPull

Source

pub fn start(self) -> Session

Creates a new session to receive messages from the subscription.

Note that the underlying connection with the server is lazy-initialized. It is not established until Session::next() is called.

§Example
let mut session = client
    .streaming_pull("projects/my-project/subscriptions/my-subscription")
    .start();
while let Some((m, h)) = session.next().await.transpose()? {
    println!("Received message m={m:?}");
    h.ack();
}
Source

pub fn set_ack_deadline_seconds<T: Into<i32>>(self, v: T) -> Self

Sets the ack deadline to use for the stream.

This value represents how long the application has to ack or nack an incoming message. Note that this value is independent of the deadline configured on the server-side subscription.

If the server does not hear back from the client within this deadline (e.g. if an application crashes), it will resend any unacknowledged messages to another subscriber.

The minimum deadline you can specify is 10 seconds. The maximum deadline you can specify is 600 seconds (10 minutes).

The default value is 10 seconds.

§Example
let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
    .set_ack_deadline_seconds(20)
    .start();
Source

pub fn set_max_outstanding_messages<T: Into<i64>>(self, v: T) -> Self

Flow control settings for the maximum number of outstanding messages.

The server will stop sending messages to a client when this many messages are outstanding (i.e. that have not been acked or nacked).

The server resumes sending messages when the outstanding message count drops below this value.

Use a value <= 0 to set no limit on the number of outstanding messages.

The default value is 1000 messages.

§Example
let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
    .set_max_outstanding_messages(2000)
    .start();
Source

pub fn set_max_outstanding_bytes<T: Into<i64>>(self, v: T) -> Self

Flow control settings for the maximum number of outstanding bytes.

The server will stop sending messages to a client when this many bytes of messages are outstanding (i.e. that have not been acked or nacked).

The server resumes sending messages when the outstanding byte count drops below this value.

Use a value <= 0 to set no limit on the number of outstanding bytes.

The default value is 100 MiB.

§Example
# use google_cloud_pubsub::client::Subscriber;
# async fn sample() -> anyhow::Result<()> {
# let client = Subscriber::builder().build().await?;
const MIB: i64 = 1024 * 1024;
let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
    .set_max_outstanding_bytes(200 * MIB)
    .start();
# Ok(()) }

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more