现在,我有一个Discord机器人,它在大约575台服务器中,并且在网站上列出了该机器人的当前服务器数。现在,我的方法是每5分钟在该网页的快速应用中记录一次漫游器,并保存要提供给客户端的当前服务器数量。每当我必须登录时,这都会导致内存使用量激增,并且将整个discord.js应用程序用于一个功能似乎效率低下。
我尝试使用Discord API端点,但这非常麻烦,因为只有一个端点可以列出所有服务器,而不仅仅是计数。端点一次只能在100台服务器上发送信息,因此我不得不提出很多不同的请求。
我希望有一种方法可以使用更少的内存,但仍然可以更快。我尝试查看discord.js的源代码以查看是否可以隔离所需的功能,但是我什至无法找到代码中从Discord请求数据的位置。如果有人能弄清楚我该怎么做,将不胜感激。
答案 0 :(得分:0)
您可以尝试使用免费的在线数据库作为在机器人与快速应用程序之间“通信”数据的一种方式。
例如,您可以使用Cloud Firestore。每15分钟(或您想要的频率),您的机器人就可以将服务器计数信息(如果需要,还可以更新时间)保存到Cloud Firestore中。客户端每次加载您的网页时,都会从Cloud Firestore检索数据,并能够显示服务器数量和上次更新时间。 (或者,您可以让您的快速应用每15分钟检索一次数据,并将其缓存以发送给客户端)
您也可以使用此方法将漫游器中的其他数据共享到Express应用程序。
答案 1 :(得分:0)
我最终需要的解决方案是Discord Websocket连接。这样可以使所有内容保持实时更新,而不必处理discord.js附带的内存和缓存问题。在此主题之后,我还有其他一些问题,如果您想在Discord Websocket连接上了解更多信息,请查看这些问题。