2016-04-27 80 views
1

有一个事件之后,我的服务器上有反馈。我必须在事件发生后一小时内发送信息。我可以使用setTimeout(),但它似乎不会好。Node.js:很长的延迟

也许会更好,如果我开始cron这将检查(如每分钟)

有谁知道这么长时间的延迟实施更大很好的选择的情况下,从数据库中的地位?

+0

个人而言,我会使用'cron'来达到这个目的。每隔x分钟打勾一次,并在数据库中保留操作的时间戳。 – Flux

+0

我发现setTimeout()没有问题。请解释为什么它不好? – teroi

+0

@teroi如果服务器重新启动,那么命令将不会被执行 – Lola

回答

2

如果您需要100%的可靠性,请使用cron作业。 cron作业的问题在于,你的代码将散布在这个地方,每次你建立一个新的服务器时都需要配置。另一种方法是使用npm包,如cron

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

+0

感谢您的回答,我倾向于克朗,你驱散了我的怀疑 – Lola