1)首先,点击项目页面上的任务详情,我们可以看到对Job进行管理的界面,点击新建Cron任务或简单任务,我们就可以在弹出窗口上完善我们的Job信息;
2)在Job信息的完善页面,补充我们需要的相应信息来生成一个完善的JobCreateDto;
3)JobCreateDto生成完成之后,我们就会在后台进行JobDetail的生成,具体方法可以参见com.hand.hap.job.service.impl中QuzrtzServiceImpl的CreateJob方法:
4)JobDetail和Trigger完成在Schedule中的作业注册后,JobDetail就会自动根据相应的Trigger来运行;
绿色的Job任务代表该任务正在执行中,我们可以在控制台中看到这个Job的相关信息,上图中的红框就是我们Job中打印的一句话。在这需要和大家说明一下,当我们完成一个Job的创建后,这个Job就会马上被执行一次,之后才会匹配我们定义的Trigger来执行。同时,我们每一个Job的执行,都会有一个监听器来对这个Job进行监听,也就是JobRunningListener,感兴趣的童鞋可以去研究一下。(ps:当我们在后台创建完一个线程后,可以在前台直接将这个Job挂起,不用再次重启服务。)
另外在项目中quartz.properties文件定义了Quartz应用运行时行为,还包含了许多能控制Quartz运转的属性。它应放在工程的classpath中。童鞋们可以看一看。
1:启动项目.点击工作流菜单中的流程设计选项.
点击其中的新建按钮.会看到以下对话框.
名称:工作流的名称.
唯一标识:工作流的key,在工作流部署后,可以通过该值启动工作流.
分类:工作流的类别.
描述:工作流的描述信息.
首先要设计好贷款请求的处理流程.
定义一个简单贷款申请工作流,需要对贷款金额,以及贷款人的信用度进行系统检测再通过人工审批,人工审批需要进行会签,90%的人通过才可以进行放贷。人工审批的同时运行加签和转交
1.首先定义开始事件,开始事件用于触发工作流.
配置开始事件的属性.表单属性是用于启动工作流参数.
2.确定整体设计流程
3.服务任务需要一个java实现类
@Component
public class CreditService implements JavaDelegate,IActivitiBean {
@Override
public void execute(DelegateExecution execution) {
Integer amount = execution.getVariable("amount",Integer.class);
Integer credit = execution.getVariable("credit",Integer.class);
if(amount > credit*1000){
execution.setVariable("accept",Boolean.FALSE);
}else{
execution.setVariable("accept",Boolean.TRUE);
}
}
@Override
public String getBeanName() {
return "checkCredit";
}
}
public class CreditService implements JavaDelegate,IActivitiBean {
public void execute(DelegateExecution execution) {
Integer amount = execution.getVariable("amount",Integer.class);
Integer credit = execution.getVariable("credit",Integer.class);
if(amount > credit*1000){
execution.setVariable("accept",Boolean.FALSE);
}else{
execution.setVariable("accept",Boolean.TRUE);
}
}
public String getBeanName() {
return "checkCredit";
}
}
4.getBeanName的返回的值会在代理表达式中使用,注意这里需要将该类的包名加入到spring扫描的包路径中.
在spring配置文件中添加
<context:component-scan base-package="hbi.core.demo.workflow"/>
<context:component-scan base-package="hbi.core.demo.workflow"/>
5.完成之后配置服务任务的代理表达式的值
${checkCredit}
${checkCredit}
6.使用单一网关处理接受和拒绝
设置accept分支的跳转条件为
设置reject分支的跳转条件为
${accept==true}
${accept==false}
${accept==true}
${accept==false}
下面几个是我没做的,仅仅拷贝与参考文档
------------------------没做的部分--------------------------------
为了测试方便设置任务派遣为jessen
设置任务的到期时间为(到期时间的表示方法为ISO8601)3分钟
5.处理请求超时以及评估通过
请求超时使用边界定时事件,设置与任务超时一样长的事件段即可P3M,
-----------------------------------------------------------------------------------------------------
7.分支设置跳转条件代码:
//通过分支设置跳转条件
${approveResult=='APPROVED'}
//未通过
${approveResult=='REJECTED'}
//通过分支设置跳转条件
${approveResult=='APPROVED'}
//未通过
${approveResult=='REJECTED'}
8.处理请求的实现类为
//千万别忘了@Component注解
@Component
public class ProcessLoan implements JavaDelegate,IActivitiBean {
@Override
public void execute(DelegateExecution execution) {
System.out.println("-----------------------");
System.out.println("-------!!给钱!!----------------");
System.out.println("-----------------------");
}
@Override
public String getBeanName() {
return "processLoan";
}
}
//千万别忘了@Component注解
public class ProcessLoan implements JavaDelegate,IActivitiBean {
public void execute(DelegateExecution execution) {
System.out.println("-----------------------");
System.out.println("-------!!给钱!!----------------");
System.out.println("-----------------------");
}
public String getBeanName() {
return "processLoan";
}
}
10.保存完成的工作流.
2.工作流测试
2.1点击工作流发布按钮
.
2.2进入工作流测试页面.
启动工作流.
3.进入代办事项查看