pub struct LocalQueue(_);
Expand description

A local, in-process implementation of a Queue which manages the connection attempts of one or more shards.

The queue will take incoming requests and then queue them, releasing one of the requests every 6 seconds. The queue is necessary because there’s a ratelimit on how often shards can initiate sessions.

Handling shard queues usually won’t need to be manually handled due to the gateway having built-in queueing when managing multiple shards.

When not to use this

This queue implementation is “local”, meaning it’s intended to be used if you manage shards only in this process. If you run shards in multiple different processes (do you utilize microservices a lot?), then you must not use this implementation. Shards across multiple processes may create new sessions at the same time, which is bad.

It should also not be used for very large sharding, for that the LargeBotQueue can be used.

If you can’t use this, look into an alternative implementation of the Queue, such as the gateway-queue broker.

Implementations§

source§

impl LocalQueue

source

pub fn new() -> Self

Creates a new local queue.

Trait Implementations§

source§

impl Clone for LocalQueue

source§

fn clone(&self) -> LocalQueue

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LocalQueue

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LocalQueue

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Queue for LocalQueue

source§

fn request(
&self,
[id, total]: [u64; 2]
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>>

Request to be able to identify with the gateway. This will place this request behind all other requests, and the returned future will resolve once the request has been completed.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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 Twhere
U: From<T>,

const: unstable · 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> ToOwned for Twhere
T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

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