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

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

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

  1. 从数据库中选择查询
  2. 向第三方发送请求并获取响应
  3. 对响应进行一些操作
  4. 将日志和响应保存到数据库

目前,调度作业位于 Node.js 程序中,但当作业启动时,Node.js 程序会变慢。我正在对其进行重新编码,并希望将其移动到 MySQL 服务器。
我知道MySQL服务器有事件调度程序,但我发现它只能执行一些sql代码。我怎样才能做一些http请求?或者这是不可能的?有 body 帮助吗?

最佳答案

保留 Node.js 程序来处理请求。它已实现并执行您似乎不关心其处理时间的操作。

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

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

关于mysql - 触发 HTTP 请求并将响应保存在 MYSQL 结果上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105654/

相关文章:

php - 无法添加或更新子行: a foreign key constraint fails Error

javascript - 显示从融合表到谷歌网站的特定名片

javascript - 查询 Sequelize 模型以匹配多个关联

mysql - 将两行合并为一行

php mysql if id 在字段中

node.js - knex postgres 返回数字/十进制值的字符串

php - 我可以从同一服务器但使用不同的 Internet 域来提供 PHP 和 Node 应用程序吗?

node.js - electron-builder 拒绝使用 256 x 256 图标

mysql - 序列化范围类型和解析器

postgresql - 无法在 Sequelize 中将字符 'N' 插入 PostgreSQL