pub struct SubscriptionClient<U: Command + PubSubCommand> { /* private fields */ }
Expand description

Redis pubsub client to receive push messages

Implementations§

source§

impl<U: Command + PubSubCommand> SubscriptionClient<U>

source

pub fn into_client(self) -> SimpleClient

Get client back. Don’t forget reset connection!

use ntex_redis::{cmd, RedisConnector};

#[ntex::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let redis = RedisConnector::new("127.0.0.1:6379").connect_simple().await?;
    
    let subscriber = redis.subscribe(cmd::Subscribe(vec!["test"]))?;
    // do some work

    // go back to normal client
    let redis = subscriber.into_client();

    // and reset connection, client may receive pending subscription messages instead of valid RESET response
    if let Err(e) = redis.exec(cmd::Reset()).await {
        println!("Error on reset connection: {}", e);      
    };

    Ok(())
}
source

pub fn send<T: Command + PubSubCommand>( &self, cmd: T ) -> Result<(), CommandError>

Send redis subscribe/unsubscribe command

source

pub async fn recv(&self) -> Option<Result<U::Output, CommandError>>

Attempt to pull out the next value of this stream.

source

pub fn poll_recv( &self, cx: &mut Context<'_> ) -> Poll<Option<Result<U::Output, CommandError>>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the payload is exhausted.

Trait Implementations§

source§

impl<U: Command + PubSubCommand> Stream for SubscriptionClient<U>

§

type Item = Result<<U as Command>::Output, CommandError>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations§

§

impl<U> !RefUnwindSafe for SubscriptionClient<U>

§

impl<U> !Send for SubscriptionClient<U>

§

impl<U> !Sync for SubscriptionClient<U>

§

impl<U> Unpin for SubscriptionClient<U>
where U: Unpin,

§

impl<U> !UnwindSafe for SubscriptionClient<U>

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.

§

impl<T> Instrument for T

§

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

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

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> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.
§

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

§

type Ok = T

The type of successful values yielded by this future
§

type Error = E

The type of failures yielded by this future
§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_> ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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