OThinker.H3.EventHandlers.IEngineEventHandler
说明:引擎级对象的事件处理接口,比如:新建WorkItem事件等。注意:这里的事件都是滞后的事件,并不是实时的事件,比如:流程实例创建事件,是在新建的流程实例保存进数据库中才被触发的,而且是异步触发的。如果事件处理程序耗用大量的CPU,那么会影响引擎的性能;如果事件处理程序抛出异常,那么引擎会忽略掉这个异常。
部署方法:创建一个新的类库,引用H3Cloud程序集,将类继承至 IMessageEventHandler,编译成程序集后发布至H3Cloud安装目录 Server/Adapters目录下。
示例程序:
using System; using System.Data; using OThinker.H3; namespace OThinker.Demo { /// <summary> /// 监控流程实例对象的增加、删除、修改事件 /// </summary> public class WorkItemHandler : OThinker.H3.EventHandlers.IEngineEventHandler<OThinker.H3.Instance.InstanceContext> { /// <summary> /// 流程实例创建事件 /// </summary> /// <param name="Engine">引擎实例对象</param> /// <param name="Obj">流程实例对象</param> public void OnCreated(IEngine Engine, H3.Instance.InstanceContext Obj) { // TODO:你的逻辑 } /// <summary> /// 流程实例删除事件 /// </summary> /// <param name="Engine">引擎实例对象</param> /// <param name="ObjId">流程实例ID</param> public void OnRemoved(IEngine Engine, string ObjId) { // TODO:你的逻辑 } /// <summary> /// 流程实例更新事件 /// </summary> /// <param name="Engine">引擎实例对象</param> /// <param name="Obj">流程实例对象</param> public void OnUpdated(IEngine Engine, H3.Instance.InstanceContext Obj) { // TODO:你的逻辑 } } } |
方法名称:OnCreated(OThinker.H3.IEngine,`0)
方法说明 | 当对象被创建的时候,调用该接口的事件处理程序 | |
输入参数 | ||
名称 | 类型 | 说明 |
Engine | OThinker.H3.IEngine | 流程引擎接口 |
Obj | `0 | 流程实例的上下文 |
返回值 | 无 |
方法名称:OnUpdated(OThinker.H3.IEngine,`0)
方法说明 | 当对象被变更的时候,调用该接口的事件处理程序 | |
输入参数 | ||
名称 | 类型 | 说明 |
Engine | OThinker.H3.IEngine | 流程引擎接口 |
Obj | `0 | 流程实例的上下文 |
返回值 | 无 |
方法名称:OnRemoved(OThinker.H3.IEngine,System.String)
方法说明 | 当对象被删除的时候,调用该接口的事件处理程序 | |
输入参数 | ||
名称 | 类型 | 说明 |
Engine | OThinker.H3.IEngine | 流程引擎接口 |
ObjId | System.String | 对象的ID |
返回值 | 无 |