RocketMQ筆記3 事務型訊息

2021-10-17 08:52:44 字數 1395 閱讀 6134

階段二(補償)

詳細過程可以到參考文件中

@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會有乙個問題,不...