文档章节

基于Activiti实现的任务调度中心(一)

6pker
 6pker
发布于 2017/06/03 01:29
字数 268
阅读 1055
收藏 55

先上截图,有图有真相,当然能看到的东西都只是表像,希望后面有时间陆续介绍整体架构、适用于什么业务场景、遇到了什么问题、如何解决的等等。

大概罗列一下涉及到的技术:
SpringMVC, MyBatis, JNDI, Redis, ZooKeeper, Docker, Nginx, Tomcat, MySQL, 分布式事务, 分布式锁,分布式Session,线程池,多线程,存储过程,Activiti,RabbitMQ,限流机制,服务降级机制,熔断机制,乐观锁,SFTP,批量同步(删除)千万级历史数据,定时任务,重试机制,预警机制,补偿机制,状态一致性问题等等。

首页,主要显示异步任务调度运行情况。


 

流程定义部署记录

 

流程定义管理

 

流程实例管理

 

异步任务管理

 

历史记录查询

 

运行中的流程实例统计

 

Activiti引擎调教参数

 

ServiceTask耗时分析

 

当前服务器线程池分析统计

 

开发调试


预警邮件总开关

© 著作权归作者所有

共有 人打赏支持
6pker
粉丝 51
博文 98
码字总数 59361
作品 0
浦东
程序员
加载中

评论(13)

伟丶
伟丶

引用来自“伟丶”的评论

不知道工作流的任务调度中心意义在哪方面,如果只是任务调度中心的话QUARTZ和SPRING-BATCH不是做的更好么。如果为了流程办理触发,可以使用流程监听呀:flushed::flushed:

引用来自“菜鸟在路上”的评论

这其实也要看有没有这样的应用场景了,如果只是一些很简单的任务调度,QUARTZ和SPRING-BATCH的确可以胜任调度的工作。 可能我这标题和文章内容写得不够确切,我这其实是在微服务背景下做“分布式任务调度”,或者说是“分布式任务编排”。在微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备技能。但是,编排涉及到RPC、分布式事务等等,编排的质量不能仅仅取决于老师傅的手艺,需要有完善的编排框架来支撑。而我这里是使用了Activiti作为编排框架。编排框架的选择其实还有很多,例如如用SparkStream也可实现任务编排的功能,只是我们公司根据目前业务量选择的是Activiti。如果感兴趣,这两篇文章值得一读。《服务都微了,编排怎么整?》https://toutiao.io/posts/l2m2lc。还有就是《使用BPMN和微服务进行编排 ——是好做法还是坏做法?》http://blog.csdn.net/saaspad/article/details/52846799
:smile:没怎么做过微服务、分布式的东西。学习了。
6pker
6pker

引用来自“伟丶”的评论

不知道工作流的任务调度中心意义在哪方面,如果只是任务调度中心的话QUARTZ和SPRING-BATCH不是做的更好么。如果为了流程办理触发,可以使用流程监听呀:flushed::flushed:
这其实也要看有没有这样的应用场景了,如果只是一些很简单的任务调度,QUARTZ和SPRING-BATCH的确可以胜任调度的工作。 可能我这标题和文章内容写得不够确切,我这其实是在微服务背景下做“分布式任务调度”,或者说是“分布式任务编排”。在微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备技能。但是,编排涉及到RPC、分布式事务等等,编排的质量不能仅仅取决于老师傅的手艺,需要有完善的编排框架来支撑。而我这里是使用了Activiti作为编排框架。编排框架的选择其实还有很多,例如如用SparkStream也可实现任务编排的功能,只是我们公司根据目前业务量选择的是Activiti。如果感兴趣,这两篇文章值得一读。《服务都微了,编排怎么整?》https://toutiao.io/posts/l2m2lc。还有就是《使用BPMN和微服务进行编排 ——是好做法还是坏做法?》http://blog.csdn.net/saaspad/article/details/52846799
伟丶
伟丶
不知道工作流的任务调度中心意义在哪方面,如果只是任务调度中心的话QUARTZ和SPRING-BATCH不是做的更好么。如果为了流程办理触发,可以使用流程监听呀:flushed::flushed:
6pker
6pker

引用来自“大头圆”的评论

你这是用的啥开源框架
你是指ui吗?ui用的是h-ui
大头圆
大头圆
你这是用的啥开源框架
6pker
6pker

引用来自“蓝水晶飞机”的评论

我想探讨下,Activiti的调度定时稳定性如何?
稳定性和Activiti引擎的参数相关,比如线程池参数、以及AsyncExecutor相关参数等。原理是很简单,每一条job都会落地成数据库的一条记录,其中的一个字段记录该job的执行时间点,每个job默认有三次执行的机会,三次都失败后需要人工介入或者补偿机制介入。另外Activiti利用乐观锁处理job被并发执行的问题。目前使用来看是相对稳定的。
蓝水晶飞机
蓝水晶飞机
我想探讨下,Activiti的调度定时稳定性如何?
6pker
6pker

引用来自“Mr成”的评论

好喜欢,有地址吗?
公司的项目,没有在公网上
6pker
6pker

引用来自“长安俞白眉”的评论

打什么马赛克 我们看到了能咋地 还能黑了你啊
毕竟是给公司做的,不太合适
铂金小哥
铂金小哥
期待
基于quartz的云调度中心实现

一、背景 作为业务开发人员,会经常需要写一个定时任务。目前,写定时任务应用最广泛最成熟的方案是OpenSymphony开源组织在任务调度领域的一个开源项目quartz,比如要写一个定时数据同步任务...

zjytk05
2016/05/19
3.3K
33
两个分布式batch调度方案的比较

现在有两个方案,目的都是想提供一个分布式的任务调度执行框架. 背景:若干业务应用,均独立部署,需要做集群. 方案A: 一个调度中心(基于quartz),负责维护和调度job.某个job到点执行时,发送消息...

ice_stream
2015/09/02
1K
1
taobao-pamirs-schedule2.0设计和实现的局限性

不适合简单的少量任务调度 问题描述 非常简单的定时调度任务,只是定时触发执行任务,这个任务量是非常少的,单机实现就可以的任务,这种场景使用taobao-pamirs-schedule就会存在开发、配置和...

杨武兵
2016/03/14
216
5
XXL-JOB v1.5.0 发布,分布式任务调度平台

版本 V1.5.0 特性 1、任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。 2、"执行器" 新增参数 "AppName" : 是每个执行器集群的唯一标示AppName, 并周期性...

许雪里
2016/10/08
4.5K
27
Activiti用户任务分配

一、前言 上篇博文《浅谈Activiti工作流引擎用户管理》中已介绍了如何自定义自己的用户管理模块。然而困恼大多数新手的另一个问题:如何将任务分配给有层级关系的组织结构用户呢?例如,我只...

qllinhongyu
2015/05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高三暑假我是怎么想开去学linux系统的

高三的时候,我有一句口头禅:“老了老了,现在做题越来越迟钝了”。当时整天日夜苦读,体重日益增加,脸色越来越黯淡,我在终于熬过了高考的时候,简直心里面乐得开了花。我终于可以去做自己...

linuxprobe16
22分钟前
0
0
Python 获得命令行参数的方法

需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2]

编程老陆
29分钟前
0
0
链队

队列用链表来表示时,需要用两个变量来记录队列两端的变化:theFront,theBack. 根据链接方向的不同,链队有两种链接方式(其实就是链表的头插入节点和尾插入节点,头删除节点和尾删除节点)。...

Frost729
32分钟前
0
0
IDEA toString() json模板

public java.lang.String toString() {java.lang.StringBuilder builder = new java.lang.StringBuilder();#set ($i = 0)#foreach ($member in $members)#if ($i == 0)builder.appen......

Mtok
42分钟前
0
0
Dubbo内核实现之SPI简单介绍

Dubbo采用微内核+插件体系,使得设计优雅,扩展性强。那所谓的微内核+插件体系是如何实现的呢!即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLo...

明理萝
47分钟前
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部