#discord #rate-limiting #discord-api #twilight #sharding

twilight-gateway-queue

Twilight生态系统中的Discord网关连接队列实现

30个版本 (15个重大更新)

0.16.0-rc.12024年2月21日
0.15.4 2023年9月10日
0.15.2 2023年4月27日
0.15.1 2023年2月26日
0.2.1 2020年11月10日

979网页开发

Download history 752/week @ 2024-03-13 770/week @ 2024-03-20 1083/week @ 2024-03-27 1058/week @ 2024-04-03 815/week @ 2024-04-10 842/week @ 2024-04-17 1120/week @ 2024-04-24 826/week @ 2024-05-01 862/week @ 2024-05-08 798/week @ 2024-05-15 776/week @ 2024-05-22 958/week @ 2024-05-29 742/week @ 2024-06-05 791/week @ 2024-06-12 844/week @ 2024-06-19 881/week @ 2024-06-26

3,374 每月下载量
11 个库中(直接使用2个)

ISC 许可证

15KB
196

twilight-gateway-queue

codecov badge discord badge github badge license badge rust badge

网关 IDENTIFY 命令的限流功能。

Discord允许机器人的分片每5秒发送一定数量的IDENTIFY命令,每天限制在1000到2000个命令之间,并且超过此限制将使所有分片会话无效。每个识别间隔可以由分片ID对max_concurrency取模得到,这样一组分片称为一个桶。见 Discord 文档/分片

为了协调这一点,一个 Queue 应该处理每个识别请求,并且分片应该等待其信号才能继续,否则会重试。提供的 InMemoryQueue 永远不会失败或取消请求,因此是自定义实现的好起点。它也可以组合以支持多个进程;请参阅 gateway-queue-httpgateway-queue 以获取HTTP客户端和服务器实现。

依赖关系

~2.6–4MB
~69K SLoC