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.确定整体设计流程
![](https://i-blog.csdnimg.cn/blog_migrate/434de6868e948ad68eb6f6bd5b6b0bde.png)
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"; } }
4.getBeanName的返回的值会在代理表达式中使用,注意这里需要将该类的包名加入到spring扫描的包路径中.
在spring配置文件中添加
<context:component-scan base-package="hbi.core.demo.workflow"/>
5.完成之后配置服务任务的代理表达式的值
${checkCredit}
![](https://i-blog.csdnimg.cn/blog_migrate/5799c8b5e0bb3af62d662febaf7bed86.png)
6.使用单一网关处理接受和拒绝
![](https://i-blog.csdnimg.cn/blog_migrate/92f05112a18b50d7959341011caadbba.png)
设置accept分支的跳转条件为
设置reject分支的跳转条件为
${accept==true} ${accept==false}
下面几个是我没做的,仅仅拷贝与参考文档
------------------------没做的部分--------------------------------
为了测试方便设置任务派遣为jessen
设置任务的到期时间为(到期时间的表示方法为ISO8601)3分钟
5.处理请求超时以及评估通过
请求超时使用边界定时事件,设置与任务超时一样长的事件段即可P3M,
-----------------------------------------------------------------------------------------------------
7.分支设置跳转条件代码:
//通过分支设置跳转条件 ${approveResult=='APPROVED'} //未通过 ${approveResult=='REJECTED'}
![](https://i-blog.csdnimg.cn/blog_migrate/63ca10b60b0d85c02fa77182dda4f851.png)
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"; } }
10.保存完成的工作流.
11.!!坑!!
11.1千万别忘了设定审批人!没有设定会报空指针异常,我入坑了半个多小时!!
2.工作流测试
2.1点击工作流发布按钮
.
2.2进入工作流测试页面.
启动工作流.
3.进入代办事项查看
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">