0

我用 nodejs 制作了一个 Web 应用程序,它从亚马逊获取数据。我想让这样的应用程序在一定的时间间隔内工作。我希望进行 - 15 分钟更新(将用于接近实时库存观察) - 每日更新(将用于其他一些不经常更改的数据)

使用 setInterval 会是最优的吗?我在某处读到 setInterval 结果有问题??

我还有哪些选择?

4

1 回答 1

0

首先,使用 setInterval 进行 15 分钟更新是完全可以接受的,但如果您希望设置将在几周内发生的事件,那么您最好使用 Node Schedule https://github.com/node-schedule/node之类的东西-时间表

这样做的主要原因是,将日期设置为遥远的未来或每周设置为 setInterval 是,如果您有基于日历的事件或双周事件或事件偏离正常时间表的时间,基于时间的计算有时不是最佳的。使用节点计划,您可以根据日期和日历事件设置事件,因此您可以根据情况混合两者。

与整个解决方案相关:如果您开始水平扩展,或者如果您的环境(如 Heroku)重新启动您的服务器,或者如果您想在下一次服务器启动时执行此操作(如果服务器在特定时间没有运行),那么 setInterval 将是一个问题。然后,您将不得不使用数据库。数据库将保存上次请求的时间,您可以通过它计算下一个请求的时间' Jonas Lochmann

于 2018-07-04T17:04:49.580 回答