【问题标题】:Better method rather than setTimeout for mute command静音命令的更好方法而不是 setTimeout
【发布时间】:2021-12-26 20:12:56
【问题描述】:

所以我有一个 Discord 机器人来进行审核和处理。所以我已经为静音命令计时,它会在时间结束时从用户那里删除静音。因此,我使用 setTimeout 每秒查询数据库中的数据,如果发现到期时间等于或小于当前时间,则删除静音。那么有没有更好的选择来做到这一点?我认为这增加了我的机器人的 ram 使用率。

【问题讨论】:

  • 也许cron 可能会有所帮助
  • 为什么不使用setTimeout() 在静音时间结束后运行取消静音功能。这就是它的本意
  • @Elitezen 这不是一个好主意,因为如果您在此持续时间结束之前重新启动机器人 - 机器人不会取消静音一个被静音的人
  • 任何东西都比每秒比较时间有所改进,只是指出了 setTimeout 的主要目的
  • 您可以设置一个 cron 计时器,甚至可以将取消静音的时间保存在一个文件中,并在机器人启动时设置一个 cron 计时器(在重新启动后仍然“记住”取消静音用户)跨度>

标签: node.js discord discord.js bots


【解决方案1】:

您可以为此使用数据库。让我们来看看解决方案。

解决方案


  • 将信息存储在数据库中
    • 当某人被静音时,存储他们的数据
    • 您需要存储他们的 ID 和静音结束时的时间戳
  • 每隔一定时间检查一次数据库。
    • 这可以使用setInterval()来实现
    • 做一些逻辑
      • 检查静音是否结束
      • 如果是,请删除该角色。否则,什么也不做。

【讨论】:

  • 我只这样做了
猜你喜欢
  • 2021-07-04
  • 2020-07-13
  • 2020-10-28
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
相关资源
最近更新 更多