首页 > 解决方案 > djs 及时取消静音用户(数据库)

问题描述

我想发出一个静音命令,您可以在其中将用户静音特定时间。我之前使用过 setTimeout() 函数,但它在更长的时间或机器人停止并重新启动时没有用。所以现在我将时间节省到数据库中:

expires = new Date(new Date().getTime() + time).toLocaleString()
// -> 9.9.2021, 22:21:34

所以现在我想在 9.9.2021 22:21:34 取消静音这个用户。问题是我不知道如何给机器人一个信号,即用户必须及时取消静音。那么如何告诉机器人何时调用函数 unmute()。例如,如果我在启动机器人时从数据库中获取数据并且数据是:9.9.2021, 22:21:34. 现在机器人必须在这个日期调用一个函数。如何?

标签: javascriptdiscord.jsbots

解决方案


一种常见的方法是将数据库用作消息队列。机器人会定期“轮询”数据库以提取相关事件并执行那些准备好的事件。当一个事件被拉出时,它也会从数据库中删除。


推荐阅读