Discord.net C#Bot-一些碎片连续连接和断开

Discord.net C#Bot-一些碎片连续连接和断开,c#,discord,discord.net,C#,Discord,Discord.net,我有一个使用Discord.net库的Discord bot,它使用DiscordShardClient,我有16个为bot的公会服务的碎片 在过去的几周里,机器人的反应极其缓慢。现在,只有碎片9和碎片10不断断开连接,出现错误:服务器错过了心跳,然后重新连接 现在我想这是服务器ping的问题。我让机器人检查ping,它始终是~30ms,所以不是这样。此外,还提供了大量的带宽 我还在一个8核16线程服务器上安装了这个bot,它有32GB的RAM,数据库也在一个独立的fast服务器上。我认为没有硬

我有一个使用Discord.net库的Discord bot,它使用DiscordShardClient,我有16个为bot的公会服务的碎片

在过去的几周里,机器人的反应极其缓慢。现在,只有碎片9和碎片10不断断开连接,出现错误:服务器错过了心跳,然后重新连接

现在我想这是服务器ping的问题。我让机器人检查ping,它始终是~30ms,所以不是这样。此外,还提供了大量的带宽

我还在一个8核16线程服务器上安装了这个bot,它有32GB的RAM,数据库也在一个独立的fast服务器上。我认为没有硬件限制

此外,我增加了碎片的数量,希望这样做,因为我通常平均每小时收到2500条命令,这将解决问题

我还内置了垃圾邮件检测,当用户向机器人发送垃圾邮件时检测并禁用。我怀疑在公会上发垃圾邮件的用户会破坏碎片

我也熟悉心跳错误。这通常意味着机器人挂断了某个地方,无法对不和谐做出回应。通常,机器人在执行主任务时不会重新连接。然而,这次它重新连接


在测试中,我注意到了一些事情:机器人速度更快,并且不会在一夜之间需求不足时崩溃。我调试代码寻找长时间的延迟,但没有发现。数据库访问和命令执行速度极快。看起来DiscordShardedClient.MessageReceived中的事件已延迟。此外,机器人在启动后似乎确实会随着时间的推移变得有些慢。我检查了内存泄漏,优化了我的阵列,挤出了近半千兆内存。仍然没有解决我的问题。

很难回答,但我会调查资源消耗情况。就像用尽句柄(对象/套接字句柄)一样,任何类型的泄漏(计数器会随着时间的推移而上升)…都很难回答,但我会调查资源消耗。与用尽句柄(对象/套接字句柄)一样,任何类型的泄漏(计数器会随着时间的推移而上升)。。