首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django channels "ERROR Y of N channels over capacity in group subscriptions“

Django channels "ERROR Y of N channels over capacity in group subscriptions“
EN

Stack Overflow用户
提问于 2020-03-11 16:50:48
回答 1查看 1.9K关注 0票数 2

我正在用我的Django应用程序做负载测试,使用Django频道和一个redis频道层(djangographene-djangochannelsgraphene-subscriptionschannels-redis)提供GraphQL订阅。作为ASGI服务器,我现在正在使用daphne。我使用nginx作为代理。后端通过GraphQL订阅发布消息的周期取决于后端通过MQTT接收消息的周期。我正在增加外部数据提供者向MQTT代理发布消息的周期,这意味着后端必须处理这些消息并通过GraphQL订阅发布消息的周期。我遇到了以下错误:

代码语言:javascript
复制
2020-03-11 08:33:58,464 ERROR    2 of 12 channels over capacity in group subscriptions

看起来这个问题是由channels_redis引起的。我是否可以扩展基础架构来解决此问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-30 20:23:11

默认容量为100条,默认消息过期时间为60秒。因此,如果在这些容量/时间限制内从未读取通道,它将被填满。

通道可能被填满的原因之一是连接从未正确关闭。在这种情况下,通道将保留在组中,并最终填满。

缓解这种情况的一种方法是拥有足够的容量和较短的超时。您可以通过以下方式更改Django设置中的配置:

代码语言:javascript
复制
CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": REDIS_URL,  # or where your redis server lives
            "capacity": 1500,  # default 100
            "expiry": 10,  # default 60
        }
     }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60632227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档