该程序是一个 Node.js 程序。数据存储在亚马逊RDS下的MYSQL DB中。它是使用 Sequelize.js 链接的。我在程序中有一些计划工作任务。 这些计划作业遵循以下步骤:
- 从数据库中选择查询
- 向第三方发送请求并获取响应
- 对响应进行一些操作
- 将日志和响应保存到数据库
目前,调度作业位于 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/