首页 技术 正文
技术 2022年11月9日
0 收藏 324 点赞 3,058 浏览 1038 个字

前言:审批流程中常见的都是人工类型任务,但是也会有一些自动化的任务需要定时触发。因此,引擎框架中需要解决掉两个问题:选择合适的任务调度框架,集成新的任务调度模块。

1. 任务调度框架选择

Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core。

基于队列的任务处理(Fire-and-forget jobs)
延迟任务执行(Delayed jobs)
定时任务执行(Recurring jobs)
延续性任务执行(Continuations)

Hangfire用的是开源的NCrontab组件,通过Cron 表达式语法,可以指定非常灵活的定时任务类型。

1) 官方网站地址

https://www.hangfire.io/
2)ASP.NET 网站支持
http://docs.hangfire.io/en/latest/installation.html
包括安装和部署,数据库设置等。
安装步骤说明:
http://docs.hangfire.io/en/latest/installation.html
3)数据库
Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍


在HangFire的NuGet包安装过程中,HangFire数据库脚本会自动生成HangFireDB,或者也可以手工生成数据库。

2. 流程设计器支持CRON表达式编辑

CRON表达式编辑开源项目地址:

https://github.com/LGX9/cron-expression-editor

Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍

3. 任务调度模块(Slickflow.Schedule)

 3.1 流程逾期自动完成

    1) 数据库字段

流程实例表WfProcessInstance中有流程实例“逾期时间”和“逾期处理时间”字段信息,用于记录任务调度数据。

2) 逻辑描述

在流程启动或者中间状态时,更新流程实例的逾期时间,这样后台定时作业任务会检测流程实例表中有没有逾期的流程实例,如果存在,则自动设置流程实例为终结状态。

  3) 任务队列添加

Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍

 3.2 流程定时启动

    1) 数据库字段

流程定义表(WfProcess)表中字段包含“是否定时启动?”和“定时启动CRON表达式”字段。用于定义定时任务触发信息。

2) 定时启动流程节点

Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍

  3) 加入定时任务队列

Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍

4. 任务调度监视面板(Dashboard)

Slickflow.NET 开源工作流引擎基础介绍(八) — 自动化任务调度实现介绍

5. 总结

集成HangFire任务调度框架,使得Slickflow引擎产品可以支持自动处理的节点任务类型,也增强了流程的任务自动化处理能力;同时HangFire组件的健壮性和跨平台性,可以满足大多数企业级客户的业务需求和大批量作业调度请求。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295