基于Xxl-Job,dataX设计的数据同步和可视化任务编排工具
使用vue3对xxl-job进行重构,并集成datax工具实现不同数据源的数据同步,支持glue模式,并新增存储过程调用,api任务调度和可视化任务编排,支持单任务-单任务串并联,单任务-任务集串并联和单任务-任务集-任务集串并联
目前还只是1.0版本,会存在一些bug,想一起维护这个项目的小伙伴请联系我...
项目地址:https://gitee.com/xzjsccz/cc-job-admin
项目介绍
使用vue3对xxl-job-admin模块进行重构,并集成datax工具实现不同数据源的数据同步,支持glue模式,并新增api任务调度和可视化任务编排,支持单任务-单任务串并联,单任务-任务集串并联和单任务-任务集-任务集串并联
项目功能
- xxl-job的所有功能都已集成
- 新增datax数据同步功能(增量同步正在紧急开发中...工程量巨大,全量同步目前没有问题)
- 支持存储过程调用和sql调用
- 支持api任务调度
- 可视化任务编排
项目介绍
https://www.yuque.com/xiaozhao-igpfn/kb/six39vboy38eaq87?singleDoc# 《vue3-xxl-job-admin》
项目文档
- 项目介绍
![]()
- 快速开始
![]()
- 功能介绍
![]()
简单演示
datax数据同步任务
简单演示mysql-mysql全量同步功能

首先创建2个mysql数据源test1和test2,其中test2中的表stu无数据,现在演示test1数据库的stu表数据全量同步到test2中的stu表中
在cc-job中创建好datax任务,项目启动流程和任务构建在第2章,这里只是做简单演示
- 创建reader
![]()
- 创建writer
![]()
- 数据源同步配置
![]()
- 在任务列表点击执行,观察最终日志和运行结果
![]()
![]()
- 观察数据库中的数据是否同步成功
![]()
可视化任务编排工具
- 创建一个任务组
![]()
- 点击运行,观察实验日志
运行中的任务会显示黄色,成功的任务会显示绿色,失败的任务会显示红色
![]()
demoJobHandler7模拟任务运行失败
@XxlJob("demoJobHandler7")
public void demoJobHandler7() throws Exception {
XxlJobHelper.log(">>>>>>>> demoJobHandler7 start");
System.out.println(">>>>>>>> demoJobHandler7 start");
for (int i = 0; i < 10; i++) {
XxlJobHelper.log("demoJobHandler7 beat at:" + i);
System.out.println("demoJobHandler7 beat at:" + i);
TimeUnit.SECONDS.sleep(1);
}
//default success
// XxlJobHelper.log(">>>>>>>> demoJobHandler7 end");
// System.out.println(">>>>>>>> demoJobHandler7 end");
throw new RuntimeException();
}

- 任务运行日志
>>>>>>>> demoJobHandler1 start
demoJobHandler1 beat at:0
demoJobHandler1 beat at:1
demoJobHandler1 beat at:2
demoJobHandler1 beat at:3
demoJobHandler1 beat at:4
demoJobHandler1 beat at:5
demoJobHandler1 beat at:6
demoJobHandler1 beat at:7
demoJobHandler1 beat at:8
demoJobHandler1 beat at:9
>>>>>>>> demoJobHandler1 end
22:56:25.681 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:286, handler:com.xxl.job.core.handler.impl.MethodJobHandler@2d5a1588[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler2]
>>>>>>>> demoJobHandler2 start
demoJobHandler2 beat at:0
22:56:25.684 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:287, handler:com.xxl.job.core.handler.impl.MethodJobHandler@4f116ca2[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler3]
>>>>>>>> demoJobHandler3 start
demoJobHandler3 beat at:0
22:56:25.688 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:288, handler:com.xxl.job.core.handler.impl.MethodJobHandler@125d47c4[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler4]
>>>>>>>> demoJobHandler1 start
demoJobHandler4 beat at:0
demoJobHandler2 beat at:1
demoJobHandler3 beat at:1
demoJobHandler4 beat at:1
demoJobHandler2 beat at:2
demoJobHandler3 beat at:2
demoJobHandler4 beat at:2
demoJobHandler2 beat at:3
demoJobHandler3 beat at:3
demoJobHandler4 beat at:3
demoJobHandler4 beat at:4
demoJobHandler3 beat at:4
demoJobHandler2 beat at:4
demoJobHandler2 beat at:5
demoJobHandler4 beat at:5
demoJobHandler3 beat at:5
demoJobHandler2 beat at:6
demoJobHandler3 beat at:6
demoJobHandler4 beat at:6
demoJobHandler2 beat at:7
demoJobHandler3 beat at:7
demoJobHandler4 beat at:7
demoJobHandler2 beat at:8
demoJobHandler3 beat at:8
demoJobHandler4 beat at:8
demoJobHandler2 beat at:9
demoJobHandler3 beat at:9
demoJobHandler4 beat at:9
>>>>>>>> demoJobHandler2 end
>>>>>>>> demoJobHandler3 end
>>>>>>>> demoJobHandler4 end
22:56:35.788 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:290, handler:com.xxl.job.core.handler.impl.MethodJobHandler@64b018f3[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler6]
>>>>>>>> demoJobHandler6 start
demoJobHandler6 beat at:0
22:56:35.800 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:289, handler:com.xxl.job.core.handler.impl.MethodJobHandler@193bb809[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler5]
>>>>>>>> demoJobHandler5 start
demoJobHandler5 beat at:0
demoJobHandler6 beat at:1
demoJobHandler5 beat at:1
demoJobHandler6 beat at:2
demoJobHandler5 beat at:2
demoJobHandler6 beat at:3
demoJobHandler5 beat at:3
demoJobHandler6 beat at:4
demoJobHandler5 beat at:4
demoJobHandler6 beat at:5
demoJobHandler5 beat at:5
demoJobHandler6 beat at:6
demoJobHandler5 beat at:6
demoJobHandler6 beat at:7
demoJobHandler5 beat at:7
demoJobHandler5 beat at:8
demoJobHandler6 beat at:8
demoJobHandler5 beat at:9
demoJobHandler6 beat at:9
>>>>>>>> demoJobHandler6 end
>>>>>>>> demoJobHandler5 end
22:56:45.886 logback [xxl-job, EmbedServer bizThreadPool-2001027085] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register JobThread success, jobId:291, handler:com.xxl.job.core.handler.impl.MethodJobHandler@20801cbb[class com.cc.job.executor.sample.service.jobhandler.SampleXxlJob#demoJobHandler7]
>>>>>>>> demoJobHandler7 start
demoJobHandler7 beat at:0
demoJobHandler7 beat at:1
demoJobHandler7 beat at:2
demoJobHandler7 beat at:3
demoJobHandler7 beat at:4
demoJobHandler7 beat at:5
demoJobHandler7 beat at:6
demoJobHandler7 beat at:7
demoJobHandler7 beat at:8
demoJobHandler7 beat at:9
后续开发
- 代码结构完善:现在使用的是开源的后台管理系统,后续会把没有用的模块删除掉
- 方便更多数据源之间的同步,目前还只有了mysql和oracle数据源同步功能
- 前端任务组绘图工具的完善,前端绘图节点后续如果能做成展开合并式就更好了(需要一个超级前端大佬…)











浙公网安备 33010602011771号