當我在@Transactional
和@Retryable(value = StaleStateException.class) method foo()
的末尾發佈CustomEvent時,它是如何處理的?@TransactionalEventListener,@Transactional和@Retryable流程
如果我在方法執行後提交期間得到StaleStateException
,那麼@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
將不會調用,而@Retryable
Spring將第二次調用foo()
。在這種情況下,第一個CustomEvent
的生命週期是什麼?它會被清理嗎?或者在第二次成功撥打foo()
後,@TransactionalEventListener()
會被調用兩次?