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

返回值