11package com .thirdparty .ticketing .global .config ;
22
3+ import java .util .concurrent .Executors ;
4+ import java .util .concurrent .ScheduledExecutorService ;
5+
36import org .redisson .api .RedissonClient ;
47import org .springframework .beans .factory .annotation .Qualifier ;
8+ import org .springframework .beans .factory .annotation .Value ;
59import org .springframework .context .annotation .Bean ;
610import org .springframework .context .annotation .Configuration ;
711import org .springframework .context .annotation .Primary ;
2327@ Configuration
2428public class ReservationServiceContainer {
2529
30+ @ Value ("${ticketing.reservation.release-delay-seconds}" )
31+ private int reservationReleaseDelay ;
32+
33+ private final ScheduledExecutorService scheduler = Executors .newScheduledThreadPool (5 );
34+
2635 @ Bean
2736 @ Primary
2837 public ReservationService newRedisReservationService (
2938 MemberRepository memberRepository ,
3039 SeatRepository seatRepository ,
3140 StringRedisTemplate redisTemplate ) {
32- return new NewRedisReservationService (memberRepository , seatRepository , redisTemplate );
41+ return new NewRedisReservationService (memberRepository , seatRepository , redisTemplate , reservationReleaseDelay );
3342 }
3443
3544
@@ -80,7 +89,10 @@ public ReservationTransactionService cacheReservationTransactionService(
8089 paymentProcessor ,
8190 lockSeatStrategy ,
8291 eventPublisher ,
83- reservationManager );
92+ reservationManager ,
93+ reservationReleaseDelay ,
94+ scheduler
95+ );
8496 }
8597
8698 @ Bean
@@ -98,7 +110,10 @@ public ReservationTransactionService persistenceOptimisticReservationService(
98110 paymentProcessor ,
99111 lockSeatStrategy ,
100112 eventPublisher ,
101- reservationManager );
113+ reservationManager ,
114+ reservationReleaseDelay ,
115+ scheduler
116+ );
102117 }
103118
104119 @ Bean
@@ -116,6 +131,9 @@ public ReservationTransactionService persistencePessimisticReservationService(
116131 paymentProcessor ,
117132 lockSeatStrategy ,
118133 eventPublisher ,
119- reservationManager );
134+ reservationManager ,
135+ reservationReleaseDelay ,
136+ scheduler
137+ );
120138 }
121139}
0 commit comments