触发HTTP请求并将响应保存在MYSQL结果上

时间:2019-05-13 04:10:50

标签: mysql node.js sequelize.js amazon-rds

该程序是Node.js程序。数据存储在Amazon RDS下的MYSQL DB中。使用Sequelize.js进行链接。我在程序中有一些计划工作任务。 这些计划作业遵循以下步骤:

  1. 数据库中的选择查询
  2. 向第三方发送请求并获得回复
  3. 对响应做些什么
  4. 保存日志并回复数据库

当前,调度作业位于Node.js程序中,但是当作业启动时,Node.js程序将变慢。我正在对其进行编码,并希望将其移至MySQL服务器。
我知道MySQL服务器具有事件计划程序,但我发现它只能执行一些sql代码。我该如何执行一些HTTP请求?或不可能吗?有身体帮助吗?

1 个答案:

答案 0 :(得分:0)

保留您的Node.js程序以处理请求。它已实施,您似乎不必担心它的处理时间。

我将转向使用像Rabbit MQ这样的消息队列(或某种AWS队列)来存储需要获取响应和处理的作业。这样,您只需在HTTP响应期间将所需的内容(表或标识符的主键)推送到队列,然后Node.js可以从队列中选择一个项目(阻塞接口)以对其进行处理。这样,它就无需基于事件的轮询即可进行处理。

队列方法的另一个优点是,您可以在不冲突的情况下扩展处理这些请求的Node.js程序的数量,并且可以在不过载的情况下最大化CPU使用率。