階段二(補償)
詳細過程可以到參考文件中
@component
public
class
mqproducer")
private string nameaddr;
@value
("$"
)private string topicname;
//事務型生成者
private transactionmqproducer transactionmqproducer;
@postconstruct
public
void
init()
throws mqclientexception
catch
(exception e)
//執行本地事務成功,提交
return localtransactionstate.commit_message;}/*
回查方法
*/@override
public localtransactionstate checklocaltransaction
(messageext msg)
else
if(判斷2
)else}}
);}/*
傳送訊息
*/public
boolean
sendmessage
(object value)
catch
(mqclientexception e)
if(transactionsendresult.
getlocaltransactionstate()
== localtransactionstate.commit_message)
else
if(transactionsendresult.
getlocaltransactionstate()
== localtransactionstate.rollback_message)
else
}}
public
class
consumer
catch
(exception e)
return consumeconcurrentlystatus.reconsume_later;
//重試
}return consumeconcurrentlystatus.consume_success;}}
);//啟動消費服務
system.out.
println
("消費服務啟動...");
consumer.
start()
;}}
Typescrtipt學習筆記 3 泛型
泛型 generics 是指在定義函式 介面或者類的時候,不預先指定其型別,而是在使用是手動指定其型別的一種特性 在很多時候,我們不確定函式的引數或返回值,無法指定固定的型別,但是寫入any型別又會喪失型別,例如 可以看到,我們雖然傳入了number型別的引數,但是接受結果卻是any型別,因為我們並...
C 學習筆記 泛型(3) 約束
我們如果在泛型方法中建立泛型的例項,我們會發現它自動帶了四個方法 這四個方法都是object裡面自動有的方法。由於我們在使用時由於泛型的高度可指定,我們可以為它表明是任何形式,類名 int string都行,但是我們的自己寫的 邏輯為了執行它的功能,做不到能對任何型別都有很好的相容,所以我們在指定泛...
設計模式筆記 3 抽象工廠模式(建立型)
提供乙個藉口,讓該介面負責建立一系列相關或者相互依賴的物件,無需指定他們具體的類。在軟體系統中經常面臨著一系列相互依賴的物件的建立的工作,同時由於需求的變化,往往存在著更對系列物件的建立。常規的物件建立的方法,直接使用new關鍵字 road road new road 這樣直接new會有乙個問題,不...