Я хочу получить идентификатор соединения (threadId) при выполнении длинного запроса на тот случай, если пользователь во внешнем интерфейсе (Vue.js) захочет отменить запрос (в случае, если запрос никогда не заканчивается ...). Поэтому, когда пользователь нажимает «Стоп запрос», я выполняю KILL (threadId) для Mysql ..
Я использую пул с ведомым (client = mysql). Я считаю, что это что-то тривиальное, но может кто-нибудь, пожалуйста, опишите, как я могу получить доступ к этому. мой бэкэнд (node.js) настроен по-другому - - был сделан умным парнем, который определил пулы и соединение следующим образом:
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
const knex = require("knex");
// Helpers -------------------------------------------------------------------
const connection = (user, password) =>
knex({
client: "mysql",
connection: {
multipleStatements: true,
host: process.env.MYSQL_IP,
port: process.env.MYSQL_PORT,
user,
password,
database: "",
dateStrings: true,
idleTimeoutMillis: -1
},
debug: true,
pool: {
min: 0,
max: 7
}
});
const knex_session = pool => (user, password) => {
if (pool[user] === undefined) {
pool[user] = connection(user, password);
}
return pool[user];
};
// Pool ----------------------------------------------------------------------
const connections = {};
// Exports -------------------------------------------------------------------
exports.admin = connection(
process.env.MYSQL_USERNAME,
process.env.MYSQL_PASSWORD
);
exports.client = knex_session(connections);
// ---------------------------------------------------------------------------
Я ищу способ получить mysql threadId как-то - я представляю из функции (route). Другие варианты - это другой вызов mysql (SELECT CONNECTION_ID ()) или каким-то образом извлечение его данных из объекта запроса (однако и здесь не удалось).
Чем бы я выполнял команду KILL QUERY (threadId), чтобы убедиться, что запрос не зависает и что я могу отобразить для пользователя правильный компонент vue.