我试图通过检查基于塔恩的池来获取当前正在运行的查询。以前使用节点池,我可以检查_inUseObjects
,但是,如果我尝试检查pendingCreates
,则有多个带有承诺的PendingOperation
对象。
甚至可以检查连接以获取查询吗?
答案 0 :(得分:0)
我认为无法直接从池中监视正在使用哪些连接,因为当从池中取出连接时,池会忘记它。
您可以使用全局knex事件来跟踪开始/完成的查询https://knexjs.org/#Interfaces-Events
类似这样的东西:
knex.on('query', querySpec => {
console.log(`Query ${querySpec.__knexUid} started`);
});
knex.on('query-response', (res, querySpec) => {
console.log(`Query ${querySpec.__knexUid} ended`);
});
knex.on('query-error', (err, querySpec) => {
console.log(`Query ${querySpec.__knexUid} failed`);
});