背景:
我们做流程的是,任务监听是非常重要的一个组件,那么我们如何来制定任务监听器呢?
第一:任务监听有三种事件类型
1 . create :在任务创建且所有任务属性设置完成之后才触发。
2.assignment :在任务被分配给某个班里人之后触发,它是在create事件触发前被触发。
3.complete:在配置了监听器的上一个任务完成是触发,也就是说运行期任务删除之前触发。
第二:任务监听器的三种监听器执行类型
1.class:需要类的全路径
实例:
public class StartTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
logger.debug("调用了任务监听器");
}
}
2.expression:定义一个表达式,类似EL的语法
3.delegateExpression:指的是一个实现监听接口
@Component(value = "taskBusinessCallListener")
public class TaskBusinessCallListener extends BusinessCallListener implements TaskListener {
/**
* dubbo的类名
*/
private FixedValue clazzName;
/**
* 方法名
*/
private FixedValue method;
/**
* 版本号
*/
private FixedValue version;
/**
* 参数 多个的话用分号隔开 实例 userCode:00004737;status:1
*/
private FixedValue params;
@Override
public void notify(DelegateTask delegateTask) {
String processInstanceId = delegateTask.getProcessInstanceId();
//执行回调
this.callBack(processInstanceId, clazzName.getExpressionText(), method.getExpressionText(), version.getExpressionText(), params.getExpressionText());
}
}