redis鎖在事務提交之後再釋放

發現 我們平時使用 分佈式鎖的方式有問題 如: try {} finnally{ 釋放鎖} , 如果方法有事務的話 , 進到finnally 的時候並不代表,數據已經持久化。 會導致鎖提前釋放,正確的做法應該是 事物完成後再釋放鎖。

/**
 * 事務結束後釋放鎖
 */
private void unlockAfterTransaction(LockResult lockResult) {
    //事物完成後釋放鎖
    TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
        @Override
        public void afterCompletion(int status) {
            super.afterCompletion(status);
            distLockSservice.unlock(lockResult);
        }
    });
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章