真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Dactor的配置和API說明-創(chuàng)新互聯(lián)

這篇文章主要講解了“Dactor的配置和API說明”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Dactor的配置和API說明”吧!

成都創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十年網(wǎng)站建設(shè)經(jīng)驗成都創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站設(shè)計、H5高端網(wǎng)站建設(shè)、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、微信小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

# **配置和API說明**  

## 配置說明

 通過在xml中的Step實現(xiàn)內(nèi)部Actor之間的流程跳轉(zhuǎn)

 在配置文件中包含

 Actor、chain、和global配置 。

 程序整個執(zhí)行順序為根據(jù)交易碼找到對應(yīng)的Actor,然后執(zhí)行按照chain->parent->selft的順序進行執(zhí)行。  

 chain執(zhí)行到placeholder處,調(diào)用parent交易繼續(xù)執(zhí)行,在parent交易中執(zhí)行到placeholder交易后,調(diào)用selft自身交易繼續(xù)執(zhí)行。

 自身交易執(zhí)行完畢,彈出parent的placeholder處交易繼續(xù)執(zhí)行.parent執(zhí)行完畢,彈出chain中代碼繼續(xù)執(zhí)行。

 global配置如下

``` 

 

         

         

   

```   

beginBeanId為默認的開始Actor,value中的值是在Spring中對應(yīng)的beanName,程序初始化時將會取得此值,對未指定beginBeanId或者endBeanId的Actor初始化全局配置。  

beginActor和endActor都需要繼承Actor接口。

actor配置如下

```   

   

       

           

           

           

           

       

             

                    htmlstream:

             

   

 ```

 屬性handleException如果不設(shè)置的話,遇到異常,程序?qū)J為子類中已經(jīng)執(zhí)行完畢,跳到parent中PlaceHolder處執(zhí)行。設(shè)置為true,將不會直接跳轉(zhuǎn)到parent中,由子類進行自我處理。  

 parent和chain為調(diào)用具體交易前需要調(diào)用的公共交易,由于大部分交易都有通用的前置交易和統(tǒng)一的后置交易。通過設(shè)置parent或者chain,可提高代碼復(fù)用度。  

 fromBeanId和toBeanId配置的是Actor或者實現(xiàn)Actor接口的beanId。

 parent和chain中的ref都需要是Actor.  

 results中可定義返回的state和需要處理的viewActor

chain配置

 ```

   

       

           

       

   

```  

chain可直觀展現(xiàn)Actor調(diào)用順序.    

在chain中可順序并列多個parent類。每個parent中的Step都需要有placeHolderActor,以調(diào)用子類。      

依次執(zhí)行before中的交易,再執(zhí)行自身交易。自身交易執(zhí)行完畢,再依次回溯責(zé)任鏈中的每個交易,直到無可用交易。  

## 重要類方法說明

cn.ymotel.dactor.core.MessageDispatcher是交易流轉(zhuǎn)的核心接口類   

    public void startMessage(Message message, ActorTransactionCfg actorcfg, boolean blocked) throws Exception  

方法,用于開始整個流程,其中message需要在執(zhí)行前進行構(gòu)造,actorcfg可通過spring的getBean方法得到為Actor對象,如下  

```

   

```

    通過getBean('randomTxt1')即可得到ActorTransactionCfg對象。  

    blocked為是否阻塞,一般在交易初次放入隊列是為false,表示如果隊列滿,則直接扔給客戶端進行處理。為true則一般為內(nèi)部交易,必須提交給隊列進行處理。

  sendMessage方法內(nèi)部調(diào)用,用于將處理完畢的Message重新放入隊列,繼續(xù)下一步流程。

 cn.ymotel.dactor.core.disruptor.MessageRingBufferDispatcher是MessageDispatcher的接口實現(xiàn)類。,在啟動Spring是需要在配置中加上

 ```

 

   

 ```   

 MessageRingBufferDispatcher的strategy、bufferSize、threadNumber為三個可設(shè)置屬性.正常情況下使用默認設(shè)置即可。  

 strategy默認使用ringBuffer的BlockingWaitStrategy策略進行調(diào)度,如果交易量比較大,可調(diào)整此策略。  

 bufferSize默認使用1024。   

 threadNumber默認使用CPU個數(shù)的線程數(shù)。   

 ## 其他默認Actor說明

 cn.ymotel.dactor.message.Message.Actor,所有需要在執(zhí)行的交易都必須繼承此接口。   

 public Object HandleMessage(Message message) throws Exception;程序通過調(diào)用HandleMessage對象,如果返回的不是message對象或者為NULL,則認為此交易是異步執(zhí)行,不再自行調(diào)度。由異步交易在收到請求后,自己調(diào)用將Message再此放入隊列中。  

 cn.ymotel.dactor.action.PlaceholderActor 交易為特殊交易,用來將當(dāng)前隊列暫存,并調(diào)用子交易。  

 cn.ymotel.dactor.action.BeginActor 為Actor中step的默認開始交易。  

 cn.ymotel.dactor.action.EndActor 為Actor中step的默認結(jié)束交易。

 cn.ymotel.dactor.action.JsonViewResolverActor為需要返回Json的J2EE view

  cn.ymotel.dactor.action.ViewResolveActor為需要返回J2EE view的統(tǒng)一處理Actor  

  cn.ymotel.dactor.action.httpclient.HttpClientActor 提供的異步調(diào)用httpClient的Actor  

cn.ymotel.dactor.action.netty.aysnsocket.TcpClientActor 提供的異步調(diào)用netty的Actor  

 ## 交易流程舉例說明

 ```

   

         

             

             

             

             

         

     

 

     

 ```

 以上交易的交易流程圖如下

 Dactor的配置和API說明

以上的完整例子都可在example中得到

感謝各位的閱讀,以上就是“Dactor的配置和API說明”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Dactor的配置和API說明這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


本文名稱:Dactor的配置和API說明-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/djgipg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部