流程插件开发
本文将会详细介绍如何使用 Node SDK
开发流程插件.
介绍
流程插件
是扩展 流程引擎
中的节点的一种方式. 在流程引擎现有的功能不满足需求时, 可以通过开发流程插件来实现自定义的功能.
info
开发步骤
1. 创建项目
该过程同 数据接入驱动开发-创建项目 中的创建项目过程一致.
2. 引入SDK
const {App, Flow} = require('@airiot/sdk-nodejs/flow')
3. 实现流程插件接口
SDK
中定义了 流程插件接口
, 该接口是平台与插件交互的桥梁. 开发者需要实现这个接口.
class Flow {
/**
* @name: handler
* @msg: 执行流程插件
* @param app
* @param req 执行参数 {"projectId":"项目id","flowId":"流程id","job":"流程实例id","elementId":"节点id","elementJob":"节点的实例id","config":{}} config 节点配置
* @param callback (err,result) result 自定义格式,节点执行结果
*/
handler(app, req, callback) {}
/**
* @name: stop
* @msg: 停止流程服务
* @param app
* @param callback (err)
*/
stop(app, callback) {}
}
流程插件启动时, SDK
会连接平台的 流程引擎
服务, 并接收流程引擎发送的请求.
当流程执行到该插件对应的节点时, 会发送请求给该插件对应的程序. SDK
接收到请求后会调用对应的插件实现, 并将插件处理结果返回给流程引擎.
4. 配置插件
插件配置主要是插件与平台的连接配置.
{
"flow-engine": {
"host": "流程引擎服务地址",
"port": "流程引擎服务端口"
},
"logger": {
"level": "debug"
},
"flow": {
"name": "插件名称",
"mode": "service"
}
}
windows系统打包发布时的插件配置
{
"flow-engine": {
"host": "127.0.0.1",
"port": 2333
},
"flow": {
"name": "flowTestNode",
"mode": "service"
}
}
linux系统打包发布时的插件配置
{
"flow": {
"name": "flowTestNode",
"mode": "service"
}
}