【问题标题】:Node.js: long delayNode.js:长时间延迟
【发布时间】:2016-04-27 10:28:49
【问题描述】:

有一个事件在我的服务器上收到反馈。我必须在活动结束一小时后发送一条消息。

我可以使用setTimeout(),但似乎不太好。

如果我启动 cron 可能会更好,它将检查数据库中事件的状态(例如每分钟)

有没有人知道一个更好的选择来实现这么长的延迟?

【问题讨论】:

  • 就个人而言,我会为此使用cron。让它每 x 分钟打勾一次,并在您的数据库中保留操作的时间戳。
  • 我认为 setTimeout() 没有问题。请解释一下为什么不好?
  • @teroi 如果服务器重新启动,那么命令将不会被执行
  • 好点@Maria。一种替代方法是使用节点调度之类的东西,并在更改和服务器启动时将规则保存/加载到/从某些本地存储中。

标签: javascript node.js timeout


【解决方案1】:

如果您需要 100% 的可靠性,请使用 cron 作业。 cron 作业的问题是您的代码将分散在各处,并且每次设置新服务器时都需要进行配置。另一种方法是使用像 cron 这样的 npm 包。

setTimeout() 的问题是,如果您的应用程序崩溃/重新启动,未来的函数调用将会丢失。但是,每次您的应用程序启动时,它都可以查询数据库并查看所有丢失的超时并进行适当的设置。

【讨论】:

  • 感谢您的回答,我倾向于cron,您消除了我的疑虑
猜你喜欢
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
相关资源
最近更新 更多