静音命令的更好方法而不是 setTimeout
Posted
技术标签:
【中文标题】静音命令的更好方法而不是 setTimeout【英文标题】:Better method rather than setTimeout for mute command 【发布时间】:2021-12-26 20:12:56 【问题描述】:所以我有一个 Discord 机器人来进行审核和处理。所以我已经为静音命令计时,它会在时间结束时从用户那里删除静音。因此,我使用 setTimeout 每秒查询数据库中的数据,如果发现到期时间等于或小于当前时间,则删除静音。那么有没有更好的选择来做到这一点?我认为这增加了我的机器人的 ram 使用率。
【问题讨论】:
也许cron 可能会有所帮助 为什么不使用setTimeout()
在静音时间结束后运行取消静音功能。这就是它的本意
@Elitezen 这不是一个好主意,因为如果您在此持续时间结束之前重新启动机器人 - 机器人不会取消静音一个被静音的人
任何东西都比每秒比较时间有所改进,只是指出了 setTimeout 的主要目的
您可以设置一个 cron 计时器,甚至可以将取消静音的时间保存在一个文件中,并在机器人启动时设置一个 cron 计时器(在重新启动后仍然“记住”取消静音用户)跨度>
【参考方案1】:
您可以为此使用数据库。让我们来看看解决方案。
解决方案
将信息存储在数据库中 当某人被静音时,存储他们的数据 您需要存储他们的 ID 和静音结束时的时间戳 每隔一定时间检查一次数据库。 这可以使用setInterval()来实现 做一些逻辑 检查静音是否结束 如果是,请删除该角色。否则,什么也不做。
【讨论】:
我只这样做了以上是关于静音命令的更好方法而不是 setTimeout的主要内容,如果未能解决你的问题,请参考以下文章