spring jms同步訊息處理

2021-06-21 12:41:48 字數 978 閱讀 7049

spring框架中直接封裝了jms的處理。在處理jms訊息時會更加方便。spring處理同步訊息時採用的jmstemplate的方法。

配置檔案如下,封裝activemq的方法:

同步接收的**如下,因為需要對接收到的訊息進行處理,所以重寫的jmstemplate的execute方法

//序列化成string,全部通過commmessage傳遞

commmessage commmessage = new defaultcommmessage(request.getservice(), request, commmessagetype.data_request);

string requesttext = this.requesttransformer.dotransformer(commmessage);

logger.debug(" request text [" + requesttext + "]");

//響應資料

message replymessage = template.execute(new producerconsumer(requesttext, this.requestdestination, this.replydestination, this.timeout, this.timetolive), true );

if (replymessage == null) else if (replymessage instanceof textmessage) else

//實現介面,響應返回訊息

public message doinjms( final session session ) throws jm***ception catch (exception e)

throw new jm***ception(e.getmessage());

} finally

}}

spring jms 非同步訊息處理

spring jms對於非同步訊息處理基本上只需配置下就能進行高效的處理。其核心就是訊息偵聽器容器,常用的類就是defaultmessagelistenercontainer。該容器可配置偵聽器的併發數量,以及配合messagelisteneradapter使用訊息驅動pojo進行訊息處理。且訊息驅...

C 跨執行緒處理同步 非同步訊息

為了不阻塞主線程,將主線程發過來的命令處理為不同的事件,放到另乙個執行緒去執行,包括同步和非同步處理。注 同乙個程序,多執行緒。為了保證執行緒間的共享資源保護以及執行緒間的訊息機制,用到了下面幾個系統庫資源 std mutex std unique lock std conditional vari...

同步訊息和非同步訊息

同步訊息和非同步訊息區別 兩者使用場景不一樣,比如說a給b傳送一封電子郵件,a是不需要知道b是否收到就可以了的,把自己的資訊傳達出去,這樣的場景就是非同步訊息。因為在這個過程中a在乎的是把某件事情傳達出去就可以,而不必在乎其他人的狀態,比如張貼告示也是這樣,不需要知道每個人都是否知道這則告示的內容,...