我用nodejs制作了一个Web应用程序,该应用程序从Amazon获取数据。我想使这样的应用程序每隔一定的时间工作一次。我希望 -15分钟更新(将用于实时库存观察) -每日更新(用于一些不经常更改的其他数据)
使用setInterval最佳吗?我在setInterval导致问题的地方阅读内容?
我还有什么选择?
答案 0 :(得分:0)
首先,使用setInterval进行15分钟的更新是可以接受的,尽管如果您希望设置将在一周之内发生的事件,那么最好使用Node Schedule https://github.com/node-schedule/node-schedule之类的方法。
这样做的主要原因是,将日期设置为遥远的将来或每周设置为setInterval是,如果您有基于日历的事件或每两周一次的事件或事件偏离该时间的时间,则基于时间的计算有时不是最佳的正常的时间表。使用“节点计划”,您可以根据日和日历事件设置事件,因此可以根据情况将两者混合。
与整个解决方案有关:如果开始水平缩放或环境(如Heroku)重新启动服务器,或者如果服务器未在特定服务器上运行,则要在下一个服务器启动时执行setInterval,将成为问题时间。然后,您将不得不使用数据库。该数据库将保存上一个请求的时间,通过该时间您可以计算下一个请求的时间Jonas Lochmann