@@ -83,50 +83,56 @@ public Object execute(ProceedingJoinPoint point,final TxTransactionInfo info) th
8383 new Thread (new HookRunnable () {
8484 @ Override
8585 public void run0 () {
86- if (task .isAwait ()) {
8786
88- int rs = txManagerService .closeTransactionGroup (groupId , resState );
87+ while (!task .isAwait () && !Thread .currentThread ().interrupted ()) {
88+ try {
89+ Thread .sleep (1 );
90+ } catch (InterruptedException e ) {
91+ e .printStackTrace ();
92+ }
93+ }
8994
90- int lastState = rs ==- 1 ? 0 : resState ;
95+ int rs = txManagerService . closeTransactionGroup ( groupId , resState ) ;
9196
92- int executeConnectionError = 0 ;
97+ int lastState = rs ==- 1 ? 0 : resState ;
9398
94- //控制本地事务的数据提交
95- final TxTask waitTask = TaskGroupManager .getInstance ().getTask (groupId , type );
96- if (waitTask !=null ){
97- waitTask .setState (lastState );
98- waitTask .signalTask ();
99+ int executeConnectionError = 0 ;
99100
100- while (!waitTask .isRemove ()){
101- try {
102- Thread .sleep (1 );
103- } catch (InterruptedException e ) {
104- e .printStackTrace ();
105- }
106- }
101+ //控制本地事务的数据提交
102+ final TxTask waitTask = TaskGroupManager .getInstance ().getTask (groupId , type );
103+ if (waitTask !=null ){
104+ waitTask .setState (lastState );
105+ waitTask .signalTask ();
107106
108- if ( waitTask .getState ()== TaskState . connectionError . getCode ()){
109- //本地执行失败.
110- executeConnectionError = 1 ;
111-
112- lastState = 0 ;
107+ while (! waitTask .isRemove ()){
108+ try {
109+ Thread . sleep ( 1 ) ;
110+ } catch ( InterruptedException e ) {
111+ e . printStackTrace () ;
113112 }
114113 }
115114
115+ if (waitTask .getState ()== TaskState .connectionError .getCode ()){
116+ //本地执行失败.
117+ executeConnectionError = 1 ;
116118
117- if (compensateLocal == null ) {
118- long end = System .currentTimeMillis ();
119- long time = end - start ;
120- if (executeConnectionError == 1 ||(lastState == 1 && rs == 0 )) {
121- //记录补偿日志
122- txManagerService .sendCompensateMsg (groupId , time , info ,executeConnectionError );
123- }
119+ lastState = 0 ;
124120 }
121+ }
125122
126- task .setState (lastState );
127- task .signalTask ();
123+ if (compensateLocal == null ) {
124+ long end = System .currentTimeMillis ();
125+ long time = end - start ;
126+ if (executeConnectionError == 1 ||(lastState == 1 && rs == 0 )) {
127+ //记录补偿日志
128+ txManagerService .sendCompensateMsg (groupId , time , info ,executeConnectionError );
129+ }
128130 }
131+
132+ task .setState (lastState );
133+ task .signalTask ();
129134 }
135+
130136 }).start ();
131137
132138 task .awaitTask ();
0 commit comments