스케줄러 데드락 에러 해결 !
·
Spring
1. 스케줄러의 비동기 실행과 트랜잭션 관리의 충돌@Scheduled 메서드는 별도의 스레드에서 비동기로 실행된다. 즉, 동시에 실행할 수 없다 !Spring의 @Transactional은 기본적으로 현재 실행 중인 스레드의 컨텍스트에 트랜잭션 정보를 저장하여 관리한다.그러나 스케줄러의 경우 비동기적으로 동작하기 때문에 트랜잭션 컨텍스트가 제대로 전파되지 않을 가능성이 있다는 것문제 예시트랜잭션 내에서 조회한 엔티티가 영속성 컨텍스트에서 관리되지 않을 수 있음비동기로 실행되면서 트랜잭션이 제대로 커밋되지 않거나 롤백되지 않는 상황이 발생할 수 있음.2. 트랜잭션 경합스케줄러가 실행 중일 때 데이터베이스에서 읽거나 업데이트를 수행하면 다른 트랜잭션과 경합할 가능성이 있따.특히, 스케줄러가 실행되는 동안 또..