fix(charge): 이벤트 작업 즉시 지급 트랜잭션을 분리한다

This commit is contained in:
2026-05-18 14:52:08 +09:00
parent 9a9fdfe0a1
commit fefb5c24eb
2 changed files with 36 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ import org.springframework.context.ApplicationEventPublisher
import org.springframework.dao.DataIntegrityViolationException
import org.springframework.stereotype.Service
import org.springframework.transaction.PlatformTransactionManager
import org.springframework.transaction.TransactionDefinition
import org.springframework.transaction.annotation.Transactional
import org.springframework.transaction.support.TransactionSynchronization
import org.springframework.transaction.support.TransactionSynchronizationManager
@@ -37,7 +38,11 @@ class ChargeEventJobService(
private val applicationEventPublisher: ApplicationEventPublisher? = null,
transactionManager: PlatformTransactionManager? = null
) {
private val transactionTemplate = transactionManager?.let { TransactionTemplate(it) }
private val transactionTemplate = transactionManager?.let {
TransactionTemplate(it).also { template ->
template.propagationBehavior = TransactionDefinition.PROPAGATION_REQUIRES_NEW
}
}
@Transactional
fun createAndProcessImmediate(sourceChargeId: Long, memberId: Long): ChargeEventJob? {