Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 27th, 2012  |  syntax: None  |  size: 5.53 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ## Quick Start
  2.  
  3. ### Dependencies
  4.  
  5. 使用maven管理依赖,最新的PMC版本是`2.1.2.11`
  6.  
  7. 一个全功能的**嵌入式**的简单依赖可能是这样的
  8.  
  9.     <properties>
  10.         <kongur.version>2.1.2.11</kongur.version>
  11.     </properties>
  12.  
  13.     <dependency>
  14.         <groupId>com.taobao.pamirs.kongur.modules</groupId>
  15.         <artifactId>kongur-dschedule</artifactId>
  16.         <version>${kongur.version}</version>
  17.     </dependency>
  18.     <dependency>
  19.         <groupId>com.taobao.pamirs.kongur.modules</groupId>
  20.         <artifactId>kongur-management</artifactId>
  21.         <version>${kongur.version}</version>
  22.     </dependency>
  23.  
  24. 如果你只需要**远程调用PMC的HSF**,那么只需要依赖
  25.  
  26.     <dependency>
  27.         <groupId>com.taobao.pamirs.kongur.modules</groupId>
  28.         <artifactId>kongur-appclient</artifactId>
  29.         <version>${kongur.version}</version>
  30.     </dependency>
  31.     <!-- kongur-config这个依赖是可选的,不过有它将会使你配置PMC的时候更加简单 -->
  32.     <dependency>
  33.         <groupId>com.taobao.pamirs.kongur.modules</groupId>
  34.         <artifactId>kongur-config</artifactId>
  35.         <version>${kongur.version}</version>
  36.     </dependency>
  37.  
  38. 需要注意的是PMC还有一些scope为provided的依赖,一般来说应用中都会依赖到,如果遇到`ClassNotFoundException`这样疑似缺少jar的错误请联系我
  39.  
  40. 下面列出provided的依赖
  41.  
  42.     待补充
  43.  
  44. ### Init
  45.  
  46. **使用Spring初始化PMC**
  47.  
  48. 嵌入使用PMC只需要配置一个bean:`PmcConfig`,下面是一个典型的配置
  49.  
  50.     <bean id="pmcConfig" class="com.taobao.pamirs.kongur.config.PmcConfig">
  51.         <!-- 开发模式:主要用户单元测试,通过单元测试的方式依赖外部hsf -->
  52.         <property name="developMode" value="false" />
  53.         <!-- 本地流程模板:是否使用本地文件系统下的模板,开发阶段方便调试 -->
  54.         <property name="localProcess" value="false" />
  55.         <!-- 运行环境:用于隔离不同的环境,取值自定,如product, pre, daily, dev等 -->
  56.         <property name="runtimeEnv" value="${runtimeEnv}" />
  57.         <!-- 启用cache 请开启 -->
  58.         <property name="enableCache" value="true" />
  59.         <!-- 启用event 涉及一些异步消息 -->
  60.         <property name="enableEvent" value="true" />
  61.         <!-- 启用job 涉及自动重试、超时等特性 -->
  62.         <property name="enableJob" value="true" />
  63.         <!-- 启用Mbean 发布一些Mbean来管理 -->
  64.         <property name="enableMbean" value="true" />
  65.         <!-- 启用默认的MC消息中心 使用消息中心发送消息 -->
  66.         <property name="enableDefaultMC" value="true" />
  67.         <!-- 消息中心的hsf版本 默认为1.0.0.daily -->
  68.         <property name="mcHsfVersion" value="${mc.version}" />
  69.         <!-- 启用默认的用户控制依赖 既后台hecla 主要作用是获取用户的邮件和旺旺等信息 -->
  70.         <property name="enableDefaultUC" value="true" />
  71.         <!-- hecla的hsf版本 默认是1.0.0.daily -->
  72.         <property name="heclaHsfVersion" value="${hecla.version}" />
  73.         <!-- 启用调度器 推荐启用 -->
  74.         <property name="enableDschedule" value="true" />
  75.         <!-- 是否在应用重启的时候重试因应用关闭而停在半路的流程 -->
  76.         <property name="initFailedActivity" value="true" />
  77.         <!-- 应用名 -->
  78.         <property name="bizApp">
  79.             <value><![CDATA[${kongur.bizApp}]]></value>
  80.         </property>
  81.         <!-- 当前应用所属执行域 -->
  82.         <property name="metaDomain">
  83.             <value><![CDATA[${kongur.executeDomain}]]></value>
  84.         </property>
  85.         <!-- 当前应用可执行域 逗号分隔多个 -->
  86.         <property name="executableDomain">
  87.             <value><![CDATA[${kongur.executeDomain}]]></value>
  88.         </property>
  89.         <!-- DB类型 MYSQL or ORACLE -->
  90.         <property name="dbType" value="MYSQL" />
  91.         <!-- tddl sequence使用的表名称 -->
  92.         <property name="sequenceTableName" value="${sequenceTableName}" />
  93.         <!-- 使用的数据源 -->
  94.         <property name="exDataSource" ref="kunlunDS" />
  95.     </bean>
  96.  
  97. 如果中心化使用PMC,也只需要配置一个`PmcConfig`
  98.  
  99.     <bean id="pmcConfig" class="com.taobao.pamirs.kongur.config.PmcConfig">
  100.         <!-- 开发模式 如果为true则连接PMC的hsf服务使用的是hsfunit -->
  101.         <property name="developMode" value="false" />
  102.         <!-- client模式 这个模式下只调用中心式PMC的hsf服务 -->
  103.         <property name="clientMode" value="true" />
  104.         <!-- 中心式PMC的hsf version 日常为2.0.0.daily 线上为2.0.0 -->
  105.         <property name="hsfVersion" value="2.0.0.daily" />
  106.         <!-- 中心式PMC的hsf group -->
  107.         <property name="hsfGroup" value="kunlun" />
  108.     </bean>
  109.  
  110. **创建持久化需要的数据表** // TODO
  111.  
  112. **初始化表数据**
  113.  
  114. 需要填充初始化数据的表有两部分
  115.  
  116.     -   TDDL-Sequence使用的序列表
  117.  
  118.             kongur_sequence
  119.  
  120.     -   taobao-pamirs-schedule使用的配置表
  121.  
  122.             pamirs_schedule_tasktype
  123.             pamirs_schedule_queue
  124. // TODO
  125.  
  126. ### Use
  127.  
  128. 从`com.taobao.pamirs.kongur.appclient.PmcServiceHolder`和`com.taobao.pamirs.kongur.api.PmcExServiceHolder`中可以获取到所有的接口
  129.  
  130. 所有接口详细信息可以在source的jar里看接口上的javadoc
  131.  
  132. -   `TaskAccessor` [API DOC](2396820#file_task_accessor.java)
  133.  
  134.     任务的查询、审批、转交、申领等动作
  135.  
  136. -   `ProcessAccessor` [API DOC](2396820#file_process_accessor.java)
  137.  
  138.     流程的查询、取消、发起等动作
  139.  
  140. -   `WebflowAccessor`
  141.  
  142.     页面流节点的查询、流转等动作