백엔드

MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

킹king 2023. 2. 15. 10:15
반응형

 

데이터 날렸는데 저런 문구가 떴음. db에 10가지 항목을 싹 넣어줬어야했는데 확인해보니 db에는 일부만 저장되어있던걸보니 요청만 너무 빨리 날려서 그런거 같더라. 난 백엔드는 모르니 프론트에서 할수있는 방법으로 적음.

 

1. promise나 await 등으로 순차적으로 보내기

// 기존
arr.map((data) => axios.post(url, data));

// 변경
let promises = arr.map(async (data) => axios.post(data));
await Promise.all(promises).then()

후로미스 주의할점 forEach쓰지말것..

await 주의할점 후로미스 반환되는 함수 왼쪽편에만 쓸수있음..

모든 게시물(특히 과거 게시물)은 잘못된 방법으로 처리한것을 좋다고 써놨을 수 있습니다. 참고만 하시고 틀린게 있다면 댓글 남겨주세요~