javascript - 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
. 现在机器人必须在这个日期调用一个函数。如何?
解决方案
一种常见的方法是将数据库用作消息队列。机器人会定期“轮询”数据库以提取相关事件并执行那些准备好的事件。当一个事件被拉出时,它也会从数据库中删除。
推荐阅读
- node.js - 部署 firebase 功能 - 没有创建 Firebase 应用“[DEFAULT]”
- c# - Automapper - 在两个类之间创建一个简单的映射并对特定类型使用自定义转换器
- python - 如何计算嵌套列表中的元素
- c# - 如何从 ViewModel 访问/更改按钮的内容
- netbeans - 如何减少 Netbeans 中菜单的高度
- python - Google Cloud Vertex AI - 模型不支持 400 'dedicated_resources'
- javascript - vuejs 在一个元素上使用多个 v-if
- javascript - Javascript中函数变量的语法错误
- java - Quartz 作业调度程序不会在 Docker 上停止
- kubernetes - StatefulSet 的 Pod 名称解析不起作用