mysql 重试_在mysql中重试死锁

我尝试在mysql和nodej中实现死锁的重试策略,但是我缺少一些关于事务提交的信息。

我要做的是,如果我得到了一个错误的死锁,我会在一个短的交易后立即承诺。

我需要运行所有previos查询agian还是重新提交就足够了?

connection.commitTransaction = function () {

return new Promise((resolve, reject) => {

const commit = () => {

connection.commit(function (err) {

if (err) {

console.error("err.code", err.code);

if (err.code === 'ER_LOCK_DEADLOCK') {

setTimeout(() => {

commit();

}, 50);

return

}

return connection.rollback(function () {

connection.end();

reject(err);

});

}

connection.end();

resolve();

});

};

commit();

});

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值