Sharding-JDBC 最大努力型事務理解。java
看的的1.5.4版本 最新的2.x版本git
demo查看github
https://github.com/shardingjdbc/sharding-jdbc/blob/1.5.4/sharding-jdbc-example/sharding-jdbc-example-jdbc-transaction/src/main/java/com/dangdang/ddframe/rdb/sharding/example/transaction/Main.javasql
須要硬編碼數據庫
SoftTransactionManager transactionManager=new SoftTransactionManager(getSoftTransactionConfiguration(dataSource));
transactionManager.init();
BEDSoftTransaction transaction = (BEDSoftTransaction transactionManager.getTransaction(SoftTransactionType.BestEffortsDelivery);異步
。。。編碼
邏輯大體是將執行的sql記錄日誌到數據庫中,失敗了在讀出來重複執行,成功了刪除,直到必定的重試次數日誌
若是仍是失敗 使用elastic-job異步的執行,事務
還失敗,保留事務日誌,人工處理,get