Discord.Net C# 机器人,在向很多人发送 DM 时我需要处理速率限制吗?

问题描述 投票:0回答:1

我使用 Discord.Net 3.8.1 制作了一个 Discord 机器人。有一项功能可以每天向公会中具有特定角色的所有用户发送 DM。机器人所在的不同公会的人数甚至可以达到 2000 人。甚至可能每个星期天向每个人发送一次消息。

虽然我正在开发,但我读到了速率限制。我想知道当我们调用 SendMessageAsync 时 Discord.Net 是否自动处理它(比如将它放在队列中并延迟执行请求)或者我是否需要添加任务。在每次 SendMessageAsync 之前延迟。 如果我确实需要增加延迟,多少? 例如,如果我需要向 2000 人发送 DM,我可以每秒调用一次 SendMessageAsync,总时间跨度为 2000 秒吗?

现在,对于每个行会,我得到所有的用户。循环遍历它们并立即调用 SendMessageAsync。

附言我对 API 和机器人开发是全新的,所以如果我在这里遗漏了其他东西,请告诉我。

我在开发过程中没有遇到任何速率限制错误。但是当我意识到速率限制时,我到处研究,包括 Discord.Net 的官方文档,但没有找到任何有用的东西。

c# discord bots rate-limiting discord.net
1个回答
0
投票

你可以调用它,它不会继续,直到等待

AnyAwaitableAsync
。据我所知,它会自动处理速率限制,但执行时间可能比预期的要长,因此最好将交互运行模式设置为异步以避免阻塞网关线程。

© www.soinside.com 2019 - 2024. All rights reserved.