文章目錄
- 問題描述:
- 解決辦法:
問題描述:
@Override@Transactional(rollbackFor = Exception.class)public ServiceResponse ctsqCallbackProcess(OaFlowRecord params) {// 查詢任務單數據// 更新任務單信息// 異步分發數據到CRMS系統}
客戶數據分發CRMS系統的時候異常,分發任務強依賴于事務內有沒有提交,異常由事務未及時提交導致異步任務無法及時查到數據,現將異步任務調整為事務提交后處理
解決辦法:
添加事務同步管理器,聲明異步是在事務提交后執行
@Override@Transactional(rollbackFor = Exception.class)public ServiceResponse ctsqCallbackProcess(OaFlowRecord params) {// 查詢任務單數據// 更新任務單信息// 異步分發數據到CRMS系統TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {@Overridepublic void afterCommit() {//異步數據分發至CRMScustAyncToCRMSAndSAP.SendSQGMCustDataToCRMS(CustDistributeCategory.客戶上市.value(), CustDistributeWay.push.value(),CustDistributeTo.CRMS.value(),tnMdCustTempBase.getAcctCode(),"add");}});}