본문 바로가기
반응형

트랜잭션2

[Prisma] Promise.all과 transaction 동시 사용 시 Transaction API error: Unable to start a transaction in the given time. 에러 발생. 외주 작업을 하면서 추가 의뢰를 받은 기능을 개발하던 중이였다. 해당 기능은 주문이 들어온지 두 달이 지났는데 아직 연결이 안된 접수 건을 조회 해서 취소된 항목 변경해달라는 것. 나는 cron으로 이미 스케줄링 작업을 돌리고 있었기 때문에 cron을 사용하기로 했고 매일 정해진 시간에 조회를 해 업데이트를 하면 된다고 생각했다. 또 이미 주문 취소 함수가 구현이 되어 있었기 때문에 해당 함수를 사용하면 된다고 생각했다. 그리고 문제의 그 코드...  @Cron('0 50 23 * * * ', { timeZone: 'Asia/Seoul' }) async deleteOldOrder() { //예전 데이터 삭제 // 기준 날짜: 현재 날짜에서 2개월 전 const .. 2024. 12. 8.
[NestJS]NestJS에서 Transaction(트랜잭션) 활용 프로젝트를 개발하면서 한 객체를 데이터베이스에 넣고 해당 인덱스를 활용하여 또 다른 insert 작업을 해야하는 상황이 발생했다. 만약 중간 단계에서 에러가 난다면 해당 작업 도중 발생한 insert를 모두 되돌려야 하는데 이럴 때 트랜잭션 단위로 묶어서 처리를 해줄 수 있다. 트랜잭션이 무엇인지 정리하고 프로젝트 도중 트랜잭션을 활용한 내용으로 공유하도록 하겠다. 트랜잭션(Transcation) 트랜잭션의 사전적 정의는 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위라고 말할 수 있다. 데이터베이스에서의 트랜잭션은 데이터베이스 서버에 여러 개의 클라이언트가 동시에 엑세스를 하거나 응용프로그램이 갱신을 처리할 때 중단 될 수 있는 등 데이터 부정합을 방지하고자 할 때 사용한다. 예를 들.. 2023. 1. 27.
반응형