Skip to content

RedisChannelLayer.send channel capacity checks against real internal redis queue, instead of expected asgi channel #97

Open
@thomas-riccardi

Description

@thomas-riccardi

ASGI Channels for the same RedisChannelLayer instance (

self.client_prefix,
) are factorized into one redis queue (also sometimes called a channel, which is confusing).
The ASGI channels capacity is check against the internal redis queue length, not the asgi channel.

Related to #95.

It is not only an issue if we have different rules per channel, but also and primarily an issue if we have many asgi channels for one RedisChannelLayer instance: some asgi channels may get ChannelFull because of other asgi channels being non-empty.

I'm not sure what to do to fix this, but it could at least be documented in the README (https://github.com/django/channels_redis#channel_capacity).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions