XXL-Job动态添加任务

本文介绍了在项目中采用分布式任务调度框架XXL-Job实现定时任务的需求。详细步骤包括配置YML文件、引入依赖、启动服务以及在Web端设置定时任务。对于动态添加任务,文章提出了模拟Web页面操作的思路,并提供了创建、启动和删除定时任务的接口示例,强调了通过特定参数识别并处理不同定时任务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近项目中涉及到了定时任务相关需求,最终选择了分布式任务调度框架xxl-job,由于我们在使用xxl-job。这里对xxl-job 一些使用做一下简单介绍。

手动定时任务

xxl-job 主要分为一个展示web的独立服务,另外一个是我们项目引入xxl-job依赖,对定时任务做监听。这里不对xxl-job 部署独立服务做介绍,主要介绍如何引入xxl-job依赖进行创建定时任务。

一、配置yml

# 定时任务中心配置信息
job:
  server:
    enabled: true
    # 校验令牌,和服务器保持一致
    accessToken: accessToken
    userName: admin
    password: xxx
    jobGroup: 1
    admin:
      # 定时任务中心地址,通过环境变量取值,(预发布环境需填写预发布的域名,不然会调到开发环境的服务)
      addresses: https://job-centerxx.com
    executor:
      # 执行器名称
      appname: middle-executor
      # 执行器的注册地址
      address:

二、xxl-job 依赖

  <!-- xxl-job-core -->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.3.0</version>
        </dependency>

三、xxl-job 启动

@Slf4j
@Configuration
@Getter
public class JobServerConfig {
   

    @Value("${job.server.admin.addresses}")
    private String adminAddresses;

    @Value("${job.server.accessToken}")
    private String accessToken;

    @Value("${job.server.executor.appname}")
    private String appname;

    @Value("${job.server.executor.address}")
    private String address;

    @Value("${job.server.userName}")
    private String userName;

    @Value("${job.server.password}")
    private String password;

    @Value("${job.server.jobGroup}")
    private String jobGroup;

    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
   
        log.info(">>>>>>>>>>> job-server config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setAccessToken(accessToken);

        return xxlJobSpringExecutor;
    }
}

四、xxl-job 定时任务处理


    /**
     * 工单生成
     */
    @XxlJob("patrolGenerateHandler")
    public void maintenanceBeginNoticeHandler() {
   
        long taskId = 0;
        try {
   
            String param = XxlJobHelper.getJobParam();
            taskId = Long.parseLong(param);
            System.out.println("工单生成");
        } catch (Exception e) {
   
            log.error("patrolGenerateHandler fail taskId is {}", taskId, e);
        }

    }

五、web端配置对应的定时任务
在这里插入图片描述

此时一个xxl-job 的定时任务就建立起来。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值