返回顶部
首页 > 资讯 > 精选 >Dactor的配置和API说明
  • 529
分享到

Dactor的配置和API说明

2023-06-02 18:06:28 529人浏览 薄情痞子
摘要

这篇文章主要讲解了“Dactor的配置和api说明”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Dactor的配置和API说明”吧!# **配置和API说明**  ##

这篇文章主要讲解了“Dactor的配置和api说明”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Dactor的配置和API说明”吧!

# **配置和API说明**  

## 配置说明

 通过在xml中的Step实现内部Actor之间的流程跳转

 在配置文件中包含

 Actor、chain、和global配置 。

 程序整个执行顺序为根据交易码找到对应的Actor,然后执行按照chain->parent->selft的顺序进行执行。  

 chain执行到placeholder处,调用parent交易继续执行,在parent交易中执行到placeholder交易后,调用selft自身交易继续执行。

 自身交易执行完毕,弹出parent的placeholder处交易继续执行.parent执行完毕,弹出chain中代码继续执行。

 global配置如下

``` 

  <actor:global id="actorglobal">

         <actor:param name="beginBeanId" value="beginActor"/>

         <actor:param name="endBeanId" value="endActor"/>

   </actor:global>

```   

beginBeanId为默认的开始Actor,value中的值是在spring中对应的beanName,程序初始化时将会取得此值,对未指定beginBeanId或者endBeanId的Actor初始化全局配置。  

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

actor配置如下

```   

    <actor:actor id="actorHttpcore"   parent="chainparent" chain="unLoginChain"  handleException="true"  endBeanId="FinishActor" >

        <actor:steps>

            <actor:step xpoint="" ypont="" fromBeanId="beginActor"  conditon="" toBeanId="placeholderActor"/>

            <actor:step xpoint="" ypont=""  fromBeanId="placeholderActor" conditon="context._SUFFIX=='JSON'"  toBeanId="jsonViewResolverActor"/>

            <actor:step xpoint="" ypont=""  fromBeanId="placeholderActor" conditon="exception==null" toBeanId="ViewResolveActor"/>

            <actor:step xpoint="" ypont=""   fromBeanId="placeholderActor" conditon="exception!=null"  toBeanId="ErrorViewResolveActor"/>

        </actor:steps>

             <results>

                    <result name="success">htmlstream:</result>

             </results>

    </actor:actor>

 ```

 属性handleException如果不设置的话,遇到异常,程序将会认为子类中已经执行完毕,跳到parent中PlaceHolder处执行。设置为true,将不会直接跳转到parent中,由子类进行自我处理。  

 parent和chain为调用具体交易前需要调用的公共交易,由于大部分交易都有通用的前置交易和统一的后置交易。通过设置parent或者chain,可提高代码复用度。  

 fromBeanId和toBeanId配置的是Actor或者实现Actor接口的beanId。

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

 results中可定义返回的state和需要处理的viewActor

chain配置

 ```

   <actor:chain id="unLoginChain">

        <actor:before>

            <actor:ref bean="actorhttpcore"></actor:ref>

        </actor:before>

    </actor:chain>

```  

chain可直观展现Actor调用顺序.    

在chain中可顺序并列多个parent类。每个parent中的Step都需要有placeHolderActor,以调用子类。      

依次执行before中的交易,再执行自身交易。自身交易执行完毕,再依次回溯责任链中的每个交易,直到无可用交易。  

## 重要类方法说明

cn.ymotel.dactor.core.MessageDispatcher是交易流转的核心接口类   

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

方法,用于开始整个流程,其中message需要在执行前进行构造,actorcfg可通过spring的getBean方法得到为Actor对象,如下  

```

<actor id="randomTxt1" parent="randomTxt" beginBeanId="randomTxtActor">

    </actor>

```

    通过getBean('randomTxt1')即可得到ActorTransactionCfg对象。  

    blocked为是否阻塞,一般在交易初次放入队列是为false,表示如果队列满,则直接扔给客户端进行处理。为true则一般为内部交易,必须提交给队列进行处理。

  sendMessage方法内部调用,用于将处理完毕的Message重新放入队列,继续下一步流程。

 cn.ymotel.dactor.core.disruptor.MessageRingBufferDispatcher是MessageDispatcher的接口实现类。,在启动Spring是需要在配置中加上

 ```

  <bean id="MessageRingBufferDispatcher" class="cn.ymotel.dactor.core.disruptor.MessageRingBufferDispatcher">

    </bean>

 ```   

 MessageRingBufferDispatcher的strategy、bufferSize、threadNumber为三个可设置属性.正常情况下使用默认设置即可。  

 strategy默认使用ringBuffer的BlockingWaitStrategy策略进行调度,如果交易量比较大,可调整此策略。  

 bufferSize默认使用1024。   

 threadNumber默认使用CPU个数的线程数。   

 ## 其他默认Actor说明

 cn.ymotel.dactor.message.Message.Actor,所有需要在执行的交易都必须继承此接口。   

 public Object HandleMessage(Message message) throws Exception;程序通过调用HandleMessage对象,如果返回的不是message对象或者为NULL,则认为此交易是异步执行,不再自行调度。由异步交易在收到请求后,自己调用将Message再此放入队列中。  

 cn.ymotel.dactor.action.PlaceholderActor 交易为特殊交易,用来将当前队列暂存,并调用子交易。  

 cn.ymotel.dactor.action.BeginActor 为Actor中step的默认开始交易。  

 cn.ymotel.dactor.action.EndActor 为Actor中step的默认结束交易。

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

  cn.ymotel.dactor.action.ViewResolveActor为需要返回J2EE view的统一处理Actor  

  cn.ymotel.dactor.action.httpclient.HttpClientActor 提供的异步调用httpClient的Actor  

cn.ymotel.dactor.action.Netty.aysnSocket.tcpClientActor 提供的异步调用netty的Actor  

 ## 交易流程举例说明

 ```

   <actor:actor id="actorhttpcore" handleException="true"  endBeanId="FinishActor" >

         <actor:steps>

             <actor:step xpoint="" ypont="" fromBeanId="beginActor"  conditon="" toBeanId="placeholderActor"/>

             <actor:step xpoint="" ypont=""  fromBeanId="placeholderActor" conditon="context._SUFFIX=='json'"  toBeanId="JsonViewResolverActor"/>

             <actor:step xpoint="" ypont=""  fromBeanId="placeholderActor" conditon="exception==null" toBeanId="ViewResolveActor"/>

             <actor:step xpoint="" ypont=""   fromBeanId="placeholderActor" conditon="exception!=null"  toBeanId="ErrorViewResolveActor"/>

         </actor:steps>

     </actor:actor>

  <actor id="randomTxt2" parent="actorhttpcore" beginBeanId="randomTxtActor">

     </actor>

 ```

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

 Dactor的配置和API说明

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

感谢各位的阅读,以上就是“Dactor的配置和API说明”的内容了,经过本文的学习后,相信大家对Dactor的配置和API说明这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Dactor的配置和API说明

本文链接: https://lsjlt.com/news/231003.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Dactor的配置和API说明
    这篇文章主要讲解了“Dactor的配置和API说明”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Dactor的配置和API说明”吧!# **配置和API说明**  ## ...
    99+
    2023-06-02
  • Keycloak各种配置及API的使用说明
    目录1.创建client2.怎样拿到access token信息 2.1采用前端登录(例如angular应用)的情况2.2 使用keycloak API3.拿到用户role...
    99+
    2023-03-09
    Keycloak配置 API的使用 Keycloak各种配置
  • Redis常用的配置和说明
    #是否作为守护进程运行,默认为nodaemonize yes#配置pid的存放路径及文件名,默认为当前路径下,此设置当守护进程运行时有效pidfile redis.pid#Redis默认监听端口port 6...
    99+
    2024-04-02
  • Persistence.xml 配置说明
    persistence.xml是Java Persistence API(JPA)中用于配置持久化单元(Persistence Un...
    99+
    2023-09-15
    说明
  • jvm的内存参数说明和配置
    这篇文章主要介绍“jvm的内存参数说明和配置”,在日常操作中,相信很多人在jvm的内存参数说明和配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jvm的内存参数说明和配置”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
  • pglogical 2.2.0配置说明
    master: postgresql 9.5(192.168.31.205)standby: postgresql 10.3(192.168.31.202) 1.postgresql配置 1).vi pos...
    99+
    2024-04-02
  • redis参数配置说明
    redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认...
    99+
    2024-04-02
  • Rockchip RK3399 eMMc 的 DTS 配置说明
    RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一...
    99+
    2023-06-05
  • Mysql配置my.cnf 参数说明
     ...
    99+
    2016-11-27
    Mysql配置my.cnf 参数说明
  • python Djanjo csrf说明与配置
     Django csrf  CSRF 全称(Cross Site Request Forgery)跨站请求伪造。也被称为One Click Attack和Session Riding,通常缩写为CSRF或XSRF。你可以这样理解:攻击者(黑...
    99+
    2015-01-30
    python Djanjo csrf说明与配置
  • mybatis-config详细配置说明
    <xml version="1.0" encoding="utf-8"> <!DOCTYPE configuration PUBLIC "...
    99+
    2024-04-02
  • 云服务器配置说明
    云服务器是一种虚拟的数据存储设备,它提供了高性能、高可靠性和低成本的云计算支持。以下是云服务器配置和使用的详细说明:一、 CPU和内存配置云服务器CPU是云服务器计算系统中最关键的组件之一。CU通常由多块计算处理器组成,每个处理器都负责处理...
    99+
    2023-10-25
    服务器配置
  • 深度说明Visual Studio .NET选项和配置
    Visual Studio .NET是一个集成开发环境(IDE),用于开发各种类型的应用程序,包括Windows桌面应用程序、Web...
    99+
    2023-09-22
    Visual
  • 详谈redis优化配置和redis.conf说明(推荐)
    1. Redis.conf 配置参数: #是否作为守护进程运行 daemonize yes #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid pidfile redis.p...
    99+
    2022-06-04
    优化配置 redis conf
  • MySQL8.0.28数据库安装和主从配置说明
    目录1. 检查服务器是否有mysql服务并卸载2. 将安装包拷贝到指定目录并安装2.1 解压安装包2.2 重命名解压文件夹名称2.3 在mysql目录下创建data目录存放数据2.4 更换mysql目录的所属用户和用户组...
    99+
    2022-12-08
    MySQL8.0.28安装 MySQL8.0.28 MySQL数据库安装 MySQL主从配置
  • Postgres_XL 简要安装配置说明
    1.系统需求CentOS 7.2 X64postgres-xl-9.5r1.4.tar.gz# yum install -y gcc-c++# yum install -y readline-devel# ...
    99+
    2024-04-02
  • Redis配置文件参数说明
    Redis配置文件参数说明1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程    daemonize no2. 当Redis...
    99+
    2024-04-02
  • 4、redis.conf中replication配置项说明
    注意:在master-slave部署模式下,只需slave实例配置Peplication相关项,各项含义说明如下。        1) slaveof <mas...
    99+
    2024-04-02
  • mysql8.0基本参数配置说明
    ## 注意: # ## (1)本配置假设物理服务器内存为 16G,总表数量在300之内,中小型企业业务 # ## (2)请根据实际情况作调整部分参数 # ## (3)本人不对这些建议结果负相应责任 ##服务端参数配置 [m...
    99+
    2023-09-11
    mysql 数据库 Powered by 金山文档
  • H3C AP配置流程及说明
      一、    具体步骤 根据AP的组网情况,保证AP设备本身的可管理性及安全性,需要对AP的名称、VLAN、SSID、接口等进行配置,具体内容如下: 1.登陆AP 【说明】 配置AP分为字符界面和图形界面两种,字符界面可以有Telnet和...
    99+
    2023-01-31
    流程 H3C AP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作