静音命令的更好方法而不是 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的主要内容,如果未能解决你的问题,请参考以下文章

ios 决定是不是在客户端代码的某些条件下静音我的远程通知,而不是设置内容可用

Vista中的静音特定应用程序

Discord.js - 检查用户是不是静音/静音更改

FFmpeg 检查音频通道是不是静音

sox 效果:可重新触发的静音

jPlayer中是不是有音频淡出的方法