分布式任务调度平台XXL-JOB的功能有哪些

发布时间:2021-11-12 10:37:52 作者:iii
来源:亿速云 阅读:545

这篇文章主要讲解了“分布式任务调度平台XXL-JOB的功能有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分布式任务调度平台XXL-JOB的功能有哪些”吧!

基本介绍

项目开发中,常常以下场景需要分布式任务调度:

因此,XXL-JOB应运而生: XXL-JOB是一个开源的轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用,其中“XXL”是主要作者,大众点评许雪里名字的缩写

自2015年开源以来,已接入数百家公司的线上产品线,接入场景涉及电商业务,O2O业务和大数据作业等

功能特性

主要功能特性如下:

系统设计

1 设计思路

将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求; 将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑; 因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;

2 系统组成

分布式任务调度平台XXL-JOB的功能有哪些

3 工作原理

分布式任务调度平台XXL-JOB的功能有哪些

4 HA设计

4.1 调度中心高可用

调度中心支持多节点部署,基于数据库行锁保证同时只有一个调度中心节点触发任务调度,参考com.xxl.job.admin.core.thread.JobScheduleHelper#start

Connection conn = XxlJobAdminConfig.getAdminConfig().getDataSource().getConnection();
connAutoCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
preparedStatement = conn.prepareStatement(  "select * from xxl_job_lock where lock_name = 'schedule_lock' for update" );
preparedStatement.execute();

# 触发任务调度

# 事务提交
 conn.commit();

4.2 任务调度高可用

同类框架比较

特性quartzelastic-job-litexxl-jobLTS
依赖MySQL、jdkjdk、zookeepermysql、jdkjdk、zookeeper、maven
高可用多节点部署,通过竞争数据库锁来保证只有一个节点执行任务通过zookeeper的注册与发现,可以动态的添加服务器基于竞争数据库锁保证只有一个节点执行任务,支持水平扩容。可以手动增加定时任务,启动和暂停任务,有监控集群部署,可以动态的添加服务器。可以手动增加定时任务,启动和暂停任务。有监控
任务分片×
管理界面×
难易程度简单简单简单略复杂
高级功能-弹性扩容,多种作业模式,失效转移,运行状态收集,多线程处理数据,幂等性,容错处理,spring命名空间支持弹性扩容,分片广播,故障转移,Rolling实时日志,GLUE(支持在线编辑代码,免发布),任务进度监控,任务依赖,数据加密,邮件报警,运行报表,国际化支持spring,spring boot,业务日志记录器,SPI扩展支持,故障转移,节点监控,多样化任务执行结果支持,FailStore容错,动态扩容。
版本更新半年没更新2年没更新最近有更新1年没更新

使用

快速上手

具体如何快速上手使用,官方文档:http://www.xuxueli.com/xxl-job/ 已经介绍得比较详细和清楚,不再赘述

注意事项

if (System.currentTimeMillis() - xxlRpcRequest.getCreateMillisTime() > 3*60*1000) {
	xxlRpcResponse.setErrorMsg("The timestamp difference between admin and executor exceeds the limit.");
	return xxlRpcResponse;
}

因此遇到任务长时间未执行完成,可以关注是否发生了执行器突然服务宕掉

感谢各位的阅读,以上就是“分布式任务调度平台XXL-JOB的功能有哪些”的内容了,经过本文的学习后,相信大家对分布式任务调度平台XXL-JOB的功能有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 为社么要用分布式集群任务调度?
  2. 功件与面向功件编程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xxl-job

上一篇:如何解决使用python批量扫描SMTP 25未授权访问问题

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》