Struct twilight_gateway_queue::LocalQueue [−][src]
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.
You usually won’t need to handle this yourself, because the Cluster will
do that for you 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
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for LocalQueueimpl Send for LocalQueueimpl Sync for LocalQueueimpl Unpin for LocalQueueimpl !UnwindSafe for LocalQueueBlanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
pub fn vzip(self) -> V