XXL-Job应用

XXL-Job接入

1.启动xxl-job服务

1)下载xxl-job源码

下载地址:https://github.com/xuxueli/xxl-job/

2)启动xxl-job-admin

下载源码后,目录结构:
在这里插入图片描述

在/doc/db/目录下找到建表语句,在MySQL中执行
在这里插入图片描述

3)Xxl-job-admin本身就是springboot项目,配置好数据源,直接启动,就启动了调度中心

4)进去xxl-job-admin管理页面(默认端口 8080)

在这里插入图片描述
运行报表:查看调度的失败次数与成功次数,并有统计图呈现
任务管理:对调度任务进行管理的中心
调度日志:调度任务的成功与否实时查看
执行器管理:执行器相关的配置
用户管理:用户登录与权限管理

2.添加执行器

1)springboot项目中,配置文件添加配置

在这里插入图片描述
ip和address均可为空
logretentiondays和logpath分别为日志保存天数和日志保存路径

2)导入xxl-job-core依赖,版本和配置中心一直,此处应用2.2.0。Java配置类引入配置

	@Value("${xxl.job.admin.addresses}")
	private String adminAddresses;
	@Value("${xxl.job.accessToken}")
	private String accessToken;
	@Value("${xxl.job.executor.appname}")
	private String appname;
	@Value("${xxl.job.executor.address}")
	private String address;
	@Value("${xxl.job.executor.ip}")
	private String ip;
	@Value("${xxl.job.executor.port}")
	private int port;
	@Value("${xxl.job.executor.logpath}")
	private String logPath;
	@Value("${xxl.job.executor.logretentiondays}")
	private int logRetentionDays;
	
	@Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }

3)编写调度方法的handler

在这里插入图片描述
在标注了一个@XxlJob的注解上就为一个handler,方法体内实现自己要的逻辑。

4)配置执行器的handler

a. 新增执行器,在调度中心的执行器管理中点击新增

在这里插入图片描述

b.查看执行器,只要执行器项目配置了调度中心地址,则会自动注册

在这里插入图片描述

c. 配置任务,在任务管理中点击新增。路由策略和阻塞处理策略见图下方

在这里插入图片描述
路由策略:
1.FIRST(第一个):固定选择第一个机器;
2.LAST(最后一个):固定选择最后一个机器;
3.ROUND(轮询):;
4.RANDOM(随机):随机选择在线的机器;
5.CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
6.LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;
7.LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举;
8.FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;
9.BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;

阻塞处理策略:
1.单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;
2.丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;
3.覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;
失败重试次数:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试
任务超时时间:支持自定义任务超时时间,任务运行超时将会主动中断任务;

d. 启动执行器,在编辑好任务后可对任务进行操作。

在这里插入图片描述

e.查看日志,启动执行器后,在调度日志中可以查看相关的日志。

在这里插入图片描述
调度日志里可以看到是否调用成功,调度成功则会在调度结果显示“成功”,而handler的执行结果,“成功”则表示代码返回的是ResultT.success,“失败”则表示返回的是ResultT.fail.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值