SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transactionSQLSTATE[HY000]:
redis-queue 消費(fèi)代碼如下
// 啟動(dòng)事務(wù)
Db::startTrans();
try {
$con[] = ['code', "=", $code];
$r1 = Db::name("code")->where($con)->save($getnewdata);
// 提交事務(wù)
Db::commit();
} catch (\Exception $e) {
// 回滾事務(wù)
Db::rollback();
print $e->getMessage();
}
請(qǐng)問(wèn)是問(wèn)題3這個(gè)問(wèn)題導(dǎo)致的嗎 如何處理呢
你這個(gè)場(chǎng)景像是其他地方?jīng)]有提交事務(wù)引起的,還有異常用Throwable,還有查看通過(guò)SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX查看事務(wù)的開(kāi)始時(shí)間,然后去日志里查找同時(shí)間的sql語(yǔ)句 然后定位問(wèn)題
這個(gè)問(wèn)題 本身這個(gè)sql所引起的,可能我理解有錯(cuò),我系統(tǒng)只要出現(xiàn)這個(gè)問(wèn)題,它會(huì)簡(jiǎn)介的致使系統(tǒng)大部分業(yè)務(wù)失效,經(jīng)過(guò)分析很可能是sql線程的問(wèn)題,這個(gè)sql線程掛掉后,之后所有在這個(gè)線程上的數(shù)據(jù)操作都會(huì)出現(xiàn)問(wèn)題
你這場(chǎng)景也不適合事務(wù)啊,就一個(gè)操作,可以1.開(kāi)啟事務(wù)2.for循環(huán)更新3.最后提交事務(wù)