TransactionMetrics refactored

This commit is contained in:
yedf2 2021-09-25 22:31:53 +08:00
parent 2ed1afb1e8
commit ae60bdd359

View File

@ -118,22 +118,23 @@ func (t *TransGlobal) getProcessor() transProcessor {
// Process process global transaction once // Process process global transaction once
func (t *TransGlobal) Process(db *common.DB, waitResult bool) dtmcli.M { func (t *TransGlobal) Process(db *common.DB, waitResult bool) dtmcli.M {
r := t.process(db, waitResult)
TransactionMetrics(t, r["dtm_result"] == dtmcli.ResultSuccess)
}
func (t *TransGlobal) process(db *common.DB, waitResult bool) dtmcli.M {
if !waitResult { if !waitResult {
go t.processInner(db) go t.processInner(db)
TransactionMetrics(t, true)
return dtmcli.MapSuccess return dtmcli.MapSuccess
} }
submitting := t.Status == dtmcli.StatusSubmitted submitting := t.Status == dtmcli.StatusSubmitted
err := t.processInner(db) err := t.processInner(db)
if err != nil { if err != nil {
TransactionMetrics(t, false)
return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": err.Error()} return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": err.Error()}
} }
if submitting && t.Status != dtmcli.StatusSucceed { if submitting && t.Status != dtmcli.StatusSucceed {
TransactionMetrics(t, false)
return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": "trans failed by user"} return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": "trans failed by user"}
} }
TransactionMetrics(t, true)
return dtmcli.MapSuccess return dtmcli.MapSuccess
} }