开箱即用的xxl-job任务后台动态管理spring-boot-starter

开箱即用的xxl-job任务后台动态管理

背景

由于最近要设计开发一个通用对账系统,不同的对账参与方的对账节点节点不一

  • 例如:

  • 资金对账:

    ○ 微信:可能是每天7点以后,才能下载前1天的对账单

    ○ 通联:可能是每天8点以后,才能下载前1天的对账单

  • 业务对账:不同的业务动作,需灵活配置对账时间节点

所以采用了xxl-job来实现此功能,但不可能每接入一个对账业务方,都去xxl-job后台手动建1个任务。

所以采用如下方案:所有对账任务采用同1个执行器,不同的对账场景使用不同的执行任务,并以任务参数进行区分,使用xxl-job-admin暴露的后台API动态进行任务添加、修改、启动、停止等功能。这样当新接入1个对账业务方,只需要在新加配置时,在后台动态新增一个xxl-job执行任务,就可以实现对账调度
在这里插入图片描述

在网上搜索,也有比较多的博客涉及到如何访问xxl-job-admin的接口,但要么代码不全,要么缺乏扩展性,为了接入简单,开箱即用,封装了一个starter,帮助有同样需求的同学快速投入项目使用

功能

  • xxl-job模拟登录
  • xxl-job执行器:动态新增、动态注册、动态查询
  • xxl-job执行任务:动态添加、动态更新、动态启动、动态停止

特性

  • xxl-job-admin的API需要登录才能访问,本项目中进行了模拟登录,获取到cookie,然后携带cookie访问API
  • 对接口访问进行统一封装,扩展性强
  • 将工程封装成spring-boot-starter,开箱即用
  • 本项目对接的xxl-job接口,都进行了单元测试,单元测试案例见com.chuanxi.wow.xxl.job.task#XxlJobTest

如何使用

1、下载源码

2、打成jar,放入maven仓库

3、引用

<!--例如:-->
<dependency>
    <groupId>com.mading</groupId>
    <artifactId>xxl-job-task-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

4、配置xxl-job

# 前缀可自行在XxlJobProperties中修改
xxl.adminAddresses=http://127.0.0.1:8080/xxl-job-admin
xxl.appname=${spring.application.name}
xxl.logretentiondays=30
xxl.port=9999
xxl.accessToken=289d5e0b-e83b-40a1-87ec-fd7b2335f15c

5、使用

@Service
public class DemoService {

    @Autowired
    private XxlJobProperties xxlJobProperties;
    @Autowired
    private XxlJobClient xxlJobClient;

    // 执行器id
    private static final Integer jobGroup = 3;

    public String dynamicAddJob() {
        JobAddRequest request = new JobAddRequest();
        request.setJobGroup(jobGroup)
                .setJobDesc("支付中心-微信对账")
                .setJobCron("0 0/1 * * * ?")
                .setExecutorHandler("checkAccountTask")
                .setExecutorParam("paycenter-wx")
                .setAuthor("马丁丁");
        return xxlJobClient.execute(request);
    }

仓库地址:gitee仓库
备注:若链接失效,在gitee上搜索xxl-job-task-spring-boot-starter即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值