CPI教程-非同步介面創建及使用
CPI教程-非同步介面創建及使用
create by yi
轉載請註明出處
先簡單介紹一下同步介面和非同步介面
什麼是同步介面
同步介面的意思就是發送方發送Message後,介面方處理完成後會立刻返回執行結果給發送方,此為同步介面。
同步介面多用於數據量小,可以立刻處理完成並返回結果的系統。
什麼是非同步介面
非同步介面的意思是指發送方發送Message後,介面方會立刻返回是否成功接收資訊的返回,一般狀態是202 Accepted,但是接收方在接收到Message後,不會立刻執行,或者執行需要一定的時間,沒有辦法立刻返回執行結果,比較完善的介面會在執行完成後,再請求發送方介面,把數據返回,也有些介面是需要發送方在一定時間後再次執行查詢,獲取介面執行結果。
非同步介面多用於數據處理比較大,或者需要流程處理的系統,比如BPM系統。
CPI如何創建非同步介面
下面我們來說說創建步驟
- 第一步,我們需要創建一個新的IFlow,大家自行創建即可,這裡不詳述。
- 第二步,發送方創建一個Soap的Adapter,參數如下
下圖是我創建的一個完整示例
其中Content Modifier2記錄了發送方發送的時間
Groovy中是一個延時程式碼,延時時間為3秒
Content Modifier1記錄了延時後的發送時間,並創建了一個Body,把發送時間,延時發送時間記錄下來
下面是測試
首先我們在Postman中創建一個連接,連接到測試的非同步介面
上圖我們看到,介面的執行時間是62ms,發送的body這裡沒有限制,只要是符合soap規範的body就行
然後我們看看CPI的介面執行情況
上圖可以看出CPI中這介面執行了3秒多,但是我們的Postman62ms就已經執行完成了
我們再來看看Body
這樣我們就可以簡簡單單的創建了一個非同步執行的介面了