node.js - Sequelize 事务中使用了多少个连接

标签 node.js promise transactions sequelize.js

提交或回滚后,Sequelize's transaction 是否自动将连接返回到连接池? (我在没有特定配置的情况下将 Sequelize 与 MSSQL 一起使用)?我的交易是手动创建和管理的,所有查询都通过 {transaction: t} 选项传递。我有两个问题:

  • 如果提交或回滚后连接没有自动返回到池中,我该如何强制执行?
  • 我在事务中的 CRUD 查询存储在一个数组中。据我了解,一个事务从池中获取一个连接,如果是这样,使用 Promise.all(queries) 比运行 queries.forEach(q => await q) 有什么好处?
  • 最佳答案

  • 您应该查看默认连接池参数:

  • options.pool.idle - The maximum time, in milliseconds, that a connection can be idle before being released.

    options.pool.evict - The time interval, in milliseconds, after which sequelize-pool will remove idle connections.


    这意味着在事务提交或回滚后,其连接变为空闲并由上述选项管理。
    2. 没有任何好处,事务在SQL语句执行顺序的情况下应该是可预测的和可靠的(后面的变化必须需要前面的变化)

    关于node.js - Sequelize 事务中使用了多少个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698103/

    相关文章:

    Java事务服务

    java - Apache Jena 不添加 hasPart 关系

    javascript - 捕获多个 .all() 调用中的错误

    swift - Kotlin 等价于 Swift 期望/ promise

    java - Hibernate 为子类 dao 使用事务管理器

    javascript - 找不到模块 'jsonwebtoken' Node.js

    javascript - Express Route Handler 不会针对文件类型路径触发

    node.js - 如何增强第三方 npm 模块以在处理我的应用程序时在 github 上提交 PR

    javascript - Mongoose 和 Express 中的两个数据库查询

    javascript - 您如何从 then() 函数中的 Promise 访问内容,并在下一个 then() 函数中访问它