如何在Node / Express中运行后台进程(用于更新数据库)?

问题描述 投票:0回答:1

我是Node和这个后端/前端概念的新手。

我想从第三方API中获取数据,并将其插入到我的数据库中。这需要每2分钟执行一次。我的应用程序是客户端上的Vue应用程序,它在服务器端上运行NodeJS。对API进行单个请求并更新数据库非常简单,但是我不确定这是什么:

  • 我希望每2分钟完成一次这些请求,并更新我的数据库,无论是否有活动用户访问我的Vue应用。当用户访问Vue应用程序时,我正在对我自己创建的自定义创建的ExpressJS REST端点进行API请求,如果只是从数据库中获取数据的话。这应该独立于事实数据库在后台每2分钟更新一次;

  • 以上所有内容,将我带到主要问题:我应该在哪里实际执行这部分,每2分钟更新一次数据库?我担心如果我在NodeJS端的某个地方添加2分钟的“ setTimeout” /“ node-cron”(我不确定由于缺乏对Node的经验而在哪里),也许每用户每2分钟执行一次(因此如果有5个用户处于活动状态,则2分钟内我实际上会有5个请求,而不是一个)?

那么应该如何维护数据库部分?我遇到了this question,这可能是我的问题的答案,但我仍然不确定:

  • 如果我有多个用户处于活动状态,是否仍每2分钟执行一次?
  • 我想应该在我的Express服务器的index.js脚本中添加此循环吗?
javascript node.js background-process cron-task node-cron
1个回答
0
投票

假设从后端到API的请求与前端的客户端交互无关。

后端仍然每两分钟发出一个请求。 API并将响应保存到数据库。

但是,当客户端使用前端向后端请求时,您可以直接向他们提供数据库中的内容。因此,您的服务器实际上是充当缓存API响应的代理。

使用setTimeout()功能没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.