Slickflow.NET 开源工作流引擎基础介绍(八) -- 自动化任务调度实现介绍
前言:审批流程中常见的都是人工类型任务,但是也会有一些自动化的任务需要定时触发。因此,引擎框架中需要解决掉两个问题:选择合适的任务调度框架,集成新的任务调度模块。
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) 数据库
在HangFire的NuGet包安装过程中,HangFire数据库脚本会自动生成HangFireDB,或者也可以手工生成数据库。
2. 流程设计器支持CRON表达式编辑
CRON表达式编辑开源项目地址:
https://github.com/LGX9/cron-expression-editor
3. 任务调度模块(Slickflow.Schedule)
3.1 流程逾期自动完成
1) 数据库字段
流程实例表WfProcessInstance中有流程实例“逾期时间”和“逾期处理时间”字段信息,用于记录任务调度数据。
2) 逻辑描述
在流程启动或者中间状态时,更新流程实例的逾期时间,这样后台定时作业任务会检测流程实例表中有没有逾期的流程实例,如果存在,则自动设置流程实例为终结状态。
3) 任务队列添加
3.2 流程定时启动
1) 数据库字段
流程定义表(WfProcess)表中字段包含“是否定时启动?”和“定时启动CRON表达式”字段。用于定义定时任务触发信息。
2) 定时启动流程节点
3) 加入定时任务队列
4. 任务调度监视面板(Dashboard)
5. 总结
集成HangFire任务调度框架,使得Slickflow引擎产品可以支持自动处理的节点任务类型,也增强了流程的任务自动化处理能力;同时HangFire组件的健壮性和跨平台性,可以满足大多数企业级客户的业务需求和大批量作业调度请求。
Slickflow.NET 开源工作流引擎基础介绍(八) -- 自动化任务调度实现介绍的更多相关文章
- Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务模块的交互
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...
- Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务系统的集成
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...
- Slickflow.NET 开源工作流引擎基础介绍(七) -- 并行分支多实例模式实现
前言:并行审批是比较常见的流程模式,在工作流模式介绍中,通常是多个分支通过网关(Gateway)来控制实现.默认的分支类型是静态定义好的.本文扩展了并行网关的控制方式,实现了动态多实例的并行分支网关, ...
- Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好 ...
- Slickflow.NET 开源工作流引擎基础介绍(一) -- 引擎基本服务接口API介绍
1. 工作流术语图示 图1 流程图形的BPMN图形元素表示 1) 流程模型定义说明流程(Process):是企 ...
- Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...
- Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...
- Slickflow.NET 开源工作流引擎基础介绍(四) -- 多数据库支持实现
前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现.引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同 ...
- Slickflow.NET 开源工作流引擎基础介绍(五) -- 会签加签高级特性介绍
前言:会签和加签是常见审批流程模式,在引擎中,对这两种流程模式做了分别定义和实现,其中也用到了Workflow Pattern的Multiple Instance(多实例) . 1. 会签和加签的定义 ...
随机推荐
- Sublime Text 2 绿化与汉化 [Windows篇]
其实 ST3 已经出了很久了,可是我这个人恋旧,一直钟爱 ST2,所以就选择她了.最近我的 ST2 越来越卡,甚至有时候输入都会延迟1秒,所以打算自己搞个绿化版. 打开 Sublime Text 官网 ...
- [转载]AngularJS 开发者最常犯的 10 个错误
http://www.oschina.net/translate/top-10-mistakes-angularjs-developers-make
- 【转】教你何时开启水果机上的HDR拍照
原址:http://news.mydrivers.com/1/175/175922.htm 苹果在iOS 4.1操作系统中为iPhone 4增加了一项有趣的新功能:HDR拍照.虽然目前市场上支持HDR ...
- jinja模板语言
模板 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强.并且更加容易理解和维护. 模板简单来说就是一个其中 ...
- ViewGroup.layout(int l, int t, int r, int b)四个输入参数的含义
ViewGroup.layout(int l, int t, int r, int b)这个方法是确定View的大小和位置的,然后将其绘制出来,里面的四个参数分别是View的四个点的坐标,他的坐标不是 ...
- 转:VMWare服务器虚拟化--转自CSDN
http://blog.csdn.net/kkfloat/article/category/1249845/3
- Linux内核启动流程分析(二)【转】
转自:http://blog.chinaunix.net/uid-25909619-id-3380544.html S3C2410 Linux 2.6.35.7启动分析(第二阶段) 接着上面的分析,第 ...
- ApiCloud利用NVTabBar模块快速搭建起APP的框架
废话不说,直接上代码 模块地址:https://docs.apicloud.com/Client-API/Nav-Menu/NVTabBar 代码实例: <!doctype html> & ...
- hdu 4348 To the moon (主席树)
版权声明:本文为博主原创文章,未经博主允许不得转载. hdu 4348 题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q ...
- Coursera台大机器学习技法课程笔记12-Neural Network
由perceptron线性组成的一个神经网络: 通过赋予g不同的权值,来实现不同的切分功能: 但有的切分只通过一次特征转换是不够的,需要多次转换,如下: Neural Network Hypothes ...