【发布时间】:2019-05-14 17:25:38
【问题描述】:
该程序是一个 Node.js 程序。数据存储在 amazon RDS 下的 MYSQL DB 中。它使用 Sequelize.js 链接。我在程序中有一些计划工作任务。 这些计划作业遵循以下步骤:
- 从数据库中选择查询
- 向第三方发送请求并获得响应
- 对响应做一些事情
- 将日志和响应保存到数据库
目前,调度作业在 Node.js 程序中,但是当作业启动时,Node.js 程序会变慢。我正在对其进行重新编码,并希望将其移至 MySQL 服务器。
我知道 MySQL 服务器有事件调度程序,但我发现它只能执行一些 sql 代码。我怎样才能做一些http请求?还是不可能?任何身体帮助?
【问题讨论】:
-
那么是第 1 步查询速度慢吗?如果是这样,请显示查询和表结构 (
SHOW CREATE TABLE {tablename}) 和EXPLAIN {query}。将更多代码移动到基础架构中可扩展性最低的部分并不是一个好的举措。为什么你没有为这种队列使用消息队列。它具有更好的界面,尤其是针对此类工作而设计的。 -
感谢@danblack 的评论。查询不慢,第3步的东西也不多。目前从第1步到第4步大概2分钟左右。主要原因是调度任务很频繁,比如5分钟或10分钟。由于 Node.js 是单线程的,因此在任务运行时程序速度较慢。我是否要为计划任务更改另一种编程语言?有什么建议吗?
标签: mysql node.js sequelize.js amazon-rds