02 NCC定时任务开发
后台任务
1 后台任务类型注册
本文档首先介绍配置流程,最后介绍具体实现类的实现。
1.1 新增后台任务
首先在后台任务类型注册节点新增一个后台任务。
常规属性项目说明:
- 编码:输入后台任务类型的编码。必填项。
- 名称:输入后台任务类型的名称。必填项。
- 所属模块:是区分各产品组模块的标识,即通常说的模块名。这里的模块是指开发模块,对应的是中间件/modules目录下的子目录。按规定模块名都是小写的。必填项。
- 消息模板类型:使用消息模板时需填。
- 所属行业:参照行业目录。
- 业务插件:开发需要实现的具体后台任务类。
1.2 阈值设置
对于一个后台任务可以配置一些阈值条件,增加其灵活性。
阈值条件项目说明:
- 阈值名称:也就是条件的名称。
- 阈值描述:对阈值名称的说明。
- 编辑类型:此处定义输入阈值的样式,系统提供五个选择:字符型、逻辑型、整型、Double型和参照基础档案类型。如果将某个阈值的编辑类型定义为逻辑型,那么在进行后台任务条目设置时,此阈值的值以下拉框的形式出现,有是和否两个选择;如果选择编辑类型为基础档案,还要在后面的参照名称栏中选择参照哪个基础档案,这样当用户输入该阈值时会弹出相应的基础档案参照。
- 是否非空:该阈值是否允许为空。
- 参照名称:如果编辑类型选择为参照基础档案,那么参数名称变为可选项,提供选择的项有人员档案、部门档案、客户档案等等。
- 是否单选:此选项针对参照而言,表示该参照是否支持多选。
- 默认值:该阈值的默认值。
2 后台任务部署
2.1 简单定义后台任务
完成后台任务类型注册后,在后台任务部署增加后台任务类型
- 条目名称:即该条目的名称,一个显示的标记。
- 条目状态:激活态表示该条目是有效的,反之休眠则表示此时该条目是无效的。默认为激活态。
- 条目信息:可以选择已配置的消息模板,用于对消息文件内容的定义。
2.2 参数设置
- 类型:即后台任务类型注册的类型。其以下拉框的形式显示,此处对后台任务类型的选择将决定此后台任务条目将调用的业务插件。
- 组织单元:限定阈值参照的范围。组织单元参照的数组,由注册的后台任务类型决定。
- 阈值列表:在此处编辑后台任务条目的阈值。这里的阈值是从类型注册中带过来的,这里要做的只是设置操作符和阈值设置。
2.3 触发配置设置
触发配置包括立即执行与定时,主要介绍一下定时的设置
定时任务设置:发生频率+一天内+有效期三者为并行使用(后两者时间指的是服务器时间);
发生频率:可以设定每天执行业务校验,也可以设定间隔几周或月进行业务校验。在一天内,可以选择周期进行执行,或在固定时间点执行。
有效期:指的是这个后台任务在哪个时间范围内是有效的,不在时间范围内无法执行;
2.4 消息接收配置
消息接收配置
信息产生时,平台通知用户的方式,提供了 3 种消息接收方式:消息中心、电子邮件、手机短信,可以设置接收人即参与者类型。
**消息中心:**将信息发送到UAP系统中相应用户的消息中心。
**电子邮件:**将信息发送到用户的电子邮箱中。添加电子邮件地址时,可以通过人员档案参照来选择(需要在人员档案中设置电子邮件地址),也可以手动添加电子邮件地址。
**手机短信:**有属于某个用户的信息产生时,通过手机短信提示用户登录UAP系统查看。使用该功能时,需要企业客户向无线通信公司提出短信服务开户申请,并由实施人员做相应设置人员档案中需要存储人员的手机号,并在用户管理中设置用户和业务员的关联。
2.5 消息模板
消息模板:点可以按照不同的领域模块定制消息模板,在模板中配置发送消息的内容和格式。添加一个消息模板,按如下步骤进行。
步骤 1:在消息模版类型注册节点注册模版类型,关联实体是为了在消息模版中使用元数据字段,另外可以在下面的子表中添加自定义变量
步骤 2:进入消息模板的新增界面,输入模板名称、模板描述、消息标题、消息内容,点击“保存”按钮。
2.6 后台任务监控和后台任务日志
后台任务监控是对后台任务的所有条目进行监督控制,只有定时任务且被激活的后台任务需要监督控制; 1、一个任务分为等待运行、正在运行、暂停等几个状态,后台任务监控中心可以临时启动一个等待调度的任务。
2、任务列表中的任务,如果处于等待状态,可点击“执行”按钮,开始执行任务。
3**、**在任务界面中选择欲删除的条目,点击“删除”按钮,系统弹出确认提示框,如果选择是,那么该任务被删除。 对于处于等待和可执行状态的任务可以删除该任务实体。被删除以后,对应的后台任务条目不会再被执行,这种情况下,虽然在后台任务部署界面还能看到该条目,但实际上它已经不发挥作用了,除非重启中间件或者修改该后台任务条目。
后台任务日志是对后台任务平台配置的所有后台任务条目的执行结果进行跟踪; 后台任务日志列表中显示后台任务实体的执行情况。其中“结果”一列会显示任务执行成功还是失败。如果是失败“说明”一列会显示任务执行失败的原因。
3 后台任务插件开发
3.1 开发流程
开发步骤:
1、开发人员先实现规定的接口( IBackgroundWorkPlugin),实现executeTask方法
2、后台任务类型注册
3、后台任务部署
4、测试后台任务
3.2 实现示例
1、实现接口IBackgroundWorkPlugin,实现方法executeTask
2、通过PreAlertContext的getKeyMap()方法获得设置的所有阈值,多选字段的值保存的是一个字符串,以英文逗号隔开。
3、返回PreAlertObject对象
简单的代码示例如下图:
下面表格是关于returnType取值及说明,其中“取值”列均为枚举nc.bs.pub.pa.PreAlertReturnType的枚举值。
取值 | 说明 |
---|---|
RETURNNOTHING | 无消息返回 |
RETURNOBJECT | 对象类型 |
RETURNFORMATMSG | 格式化消息,可转化成打印模板数据源实现接口 IAlertMessage |
RETURNMESSAGE | 返回固定字符串类型 |
RETURNDATASOURCE | 打印模板数据源,只展现自定义变量实现IDataSource接口,直接使用元数据实体上的字段或元数据实体字段与自定义变量同时存在时实现接口IMetaDataDataSource;实现 IDataSource.getItemValuesByExpress 方法获取自定义变量的值,实现 IMetaDataDataSource.getMDObjects 得到元数据实体 |
RETURNMULTILANGTEXT | 返回多语文本 |
ss 方法获取自定义变量的值,实现 IMetaDataDataSource.getMDObjects 得到元数据实体 | |
RETURNMULTILANGTEXT | 返回多语文本 |
RETURN_MULTIPLE_RECEIVER_OBJECT | 返回一个MultiReceiverPreAlertObject 对象,用于实现多接收者接收不同的消息的场景 |