- ## Quick Start
- ### Dependencies
- 使用maven管理依赖,最新的PMC版本是`2.1.2.11`
- 一个全功能的**嵌入式**的简单依赖可能是这样的
- <properties>
- <kongur.version>2.1.2.11</kongur.version>
- </properties>
- <dependency>
- <groupId>com.taobao.pamirs.kongur.modules</groupId>
- <artifactId>kongur-dschedule</artifactId>
- <version>${kongur.version}</version>
- </dependency>
- <dependency>
- <groupId>com.taobao.pamirs.kongur.modules</groupId>
- <artifactId>kongur-management</artifactId>
- <version>${kongur.version}</version>
- </dependency>
- 如果你只需要**远程调用PMC的HSF**,那么只需要依赖
- <dependency>
- <groupId>com.taobao.pamirs.kongur.modules</groupId>
- <artifactId>kongur-appclient</artifactId>
- <version>${kongur.version}</version>
- </dependency>
- <!-- kongur-config这个依赖是可选的,不过有它将会使你配置PMC的时候更加简单 -->
- <dependency>
- <groupId>com.taobao.pamirs.kongur.modules</groupId>
- <artifactId>kongur-config</artifactId>
- <version>${kongur.version}</version>
- </dependency>
- 需要注意的是PMC还有一些scope为provided的依赖,一般来说应用中都会依赖到,如果遇到`ClassNotFoundException`这样疑似缺少jar的错误请联系我
- 下面列出provided的依赖
- 待补充
- ### Init
- **使用Spring初始化PMC**
- 嵌入使用PMC只需要配置一个bean:`PmcConfig`,下面是一个典型的配置
- <bean id="pmcConfig" class="com.taobao.pamirs.kongur.config.PmcConfig">
- <!-- 开发模式:主要用户单元测试,通过单元测试的方式依赖外部hsf -->
- <property name="developMode" value="false" />
- <!-- 本地流程模板:是否使用本地文件系统下的模板,开发阶段方便调试 -->
- <property name="localProcess" value="false" />
- <!-- 运行环境:用于隔离不同的环境,取值自定,如product, pre, daily, dev等 -->
- <property name="runtimeEnv" value="${runtimeEnv}" />
- <!-- 启用cache 请开启 -->
- <property name="enableCache" value="true" />
- <!-- 启用event 涉及一些异步消息 -->
- <property name="enableEvent" value="true" />
- <!-- 启用job 涉及自动重试、超时等特性 -->
- <property name="enableJob" value="true" />
- <!-- 启用Mbean 发布一些Mbean来管理 -->
- <property name="enableMbean" value="true" />
- <!-- 启用默认的MC消息中心 使用消息中心发送消息 -->
- <property name="enableDefaultMC" value="true" />
- <!-- 消息中心的hsf版本 默认为1.0.0.daily -->
- <property name="mcHsfVersion" value="${mc.version}" />
- <!-- 启用默认的用户控制依赖 既后台hecla 主要作用是获取用户的邮件和旺旺等信息 -->
- <property name="enableDefaultUC" value="true" />
- <!-- hecla的hsf版本 默认是1.0.0.daily -->
- <property name="heclaHsfVersion" value="${hecla.version}" />
- <!-- 启用调度器 推荐启用 -->
- <property name="enableDschedule" value="true" />
- <!-- 是否在应用重启的时候重试因应用关闭而停在半路的流程 -->
- <property name="initFailedActivity" value="true" />
- <!-- 应用名 -->
- <property name="bizApp">
- <value><![CDATA[${kongur.bizApp}]]></value>
- </property>
- <!-- 当前应用所属执行域 -->
- <property name="metaDomain">
- <value><![CDATA[${kongur.executeDomain}]]></value>
- </property>
- <!-- 当前应用可执行域 逗号分隔多个 -->
- <property name="executableDomain">
- <value><![CDATA[${kongur.executeDomain}]]></value>
- </property>
- <!-- DB类型 MYSQL or ORACLE -->
- <property name="dbType" value="MYSQL" />
- <!-- tddl sequence使用的表名称 -->
- <property name="sequenceTableName" value="${sequenceTableName}" />
- <!-- 使用的数据源 -->
- <property name="exDataSource" ref="kunlunDS" />
- </bean>
- 如果中心化使用PMC,也只需要配置一个`PmcConfig`
- <bean id="pmcConfig" class="com.taobao.pamirs.kongur.config.PmcConfig">
- <!-- 开发模式 如果为true则连接PMC的hsf服务使用的是hsfunit -->
- <property name="developMode" value="false" />
- <!-- client模式 这个模式下只调用中心式PMC的hsf服务 -->
- <property name="clientMode" value="true" />
- <!-- 中心式PMC的hsf version 日常为2.0.0.daily 线上为2.0.0 -->
- <property name="hsfVersion" value="2.0.0.daily" />
- <!-- 中心式PMC的hsf group -->
- <property name="hsfGroup" value="kunlun" />
- </bean>
- **创建持久化需要的数据表** // TODO
- **初始化表数据**
- 需要填充初始化数据的表有两部分
- - TDDL-Sequence使用的序列表
- kongur_sequence
- - taobao-pamirs-schedule使用的配置表
- pamirs_schedule_tasktype
- pamirs_schedule_queue
- // TODO
- ### Use
- 从`com.taobao.pamirs.kongur.appclient.PmcServiceHolder`和`com.taobao.pamirs.kongur.api.PmcExServiceHolder`中可以获取到所有的接口
- 所有接口详细信息可以在source的jar里看接口上的javadoc
- - `TaskAccessor` [API DOC](2396820#file_task_accessor.java)
- 任务的查询、审批、转交、申领等动作
- - `ProcessAccessor` [API DOC](2396820#file_process_accessor.java)
- 流程的查询、取消、发起等动作
- - `WebflowAccessor`
- 页面流节点的查询、流转等动作