xxl-job学习(一篇文章解决)

这篇具有很好参考价值的文章主要介绍了xxl-job学习(一篇文章解决)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:学习xxl-job需要有git,springboot的基础,学起来就很简单


xxl-job是一个分布式的任务调度平台,其核心设计目标是:学习简单、开发迅速、轻量级、易扩展,现在已经开放源代码并接入多家公司的线上产品线,开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的拼音开头。


 源码下载地址(放在下面第二个),我自己写的demo也开源放在下面第一个,


 springboot-xxl-job: 学习xxl-job定时任务 (gitee.com)


xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 (gitee.com)


 然后把sql文件运行一下(也就是所需要的数据库),效果如下


xxl-job学习(一篇文章解决),学习


 直接启动(原神!启动.jpg),启动后输入   http://localhost:8090/xxl-job-admin


效果如下,账号admin密码123456


xxl-job学习(一篇文章解决),学习

登录后效果如下


 xxl-job学习(一篇文章解决),学习


下面我们就来基于自己的操作xxl-job,新建一个springboot项目


xxl-job学习(一篇文章解决),学习


 添加所需要的依赖


<!--        使用xxl-job-->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.3.1</version>
        </dependency>

新建job,config两个文件夹


xxl-job学习(一篇文章解决),学习


 XxljobConfig如下,SimpleXxlJob如下


@Configuration

public class XxlJobConfig {

    @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() {

        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();

        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);

        xxlJobSpringExecutor.setAppname(appname);

        xxlJobSpringExecutor.setAddress(address);

        xxlJobSpringExecutor.setIp(ip);

        xxlJobSpringExecutor.setPort(port);

        xxlJobSpringExecutor.setAccessToken(accessToken);

        xxlJobSpringExecutor.setLogPath(logPath);

        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;

    }

}


 properties配置文件如下,端口记得改成自己的


### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://localhost:8090/xxl-job-admin
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=default_token
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=xxl-job-executor-sample
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address=
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=127.0.0.1
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30

SimpleXxlJob类如下


@Component
public class SimpleXxlJob {

    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        System.out.println("执行定时任务,执行时间:"+new Date());
    }

}

 我们直接启动我们的springboot项目,如果看到我们注册上去的demoJobHandler,就表示成功了


xxl-job学习(一篇文章解决),学习


下面我们来添加一个任务


点击任务管理的新增,填写我们所需要的东西


 xxl-job学习(一篇文章解决),学习


 设置好了如下,然后点击保存


xxl-job学习(一篇文章解决),学习


xxl-job学习(一篇文章解决),学习


就会在idea里面看到,看到有日志就表示成功了


xxl-job学习(一篇文章解决),学习


到这里就操作成功了,恭喜各位小伙伴


下面我们GLUE模式来操作


任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用[@Resource][@Autowire]注入执行器里中的其他服务.


我们在任务管理新建一个GlUE模式的,


xxl-job学习(一篇文章解决),学习


写一个service文件夹,编写HelloService类


@Service
public class HelloService {

    public void methodA(){
        System.out.println("执行MethodA的方法");
    }

    public void methodB(){
        System.out.println("执行MethodB的方法");
    }

}

在刚刚创建的任务管理,选择GLUE IDE, 

 xxl-job学习(一篇文章解决),学习


效果如下,我们需要注册我们的HelloService。


xxl-job学习(一篇文章解决),学习


xxl-job学习(一篇文章解决),学习


包也要记得引入

package com.xxl.job.service.handler;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;
import cn.wolfcode.xxljobdemo.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;

public class DemoGlueJobHandler extends IJobHandler {

   @Autowired
    private HelloService helloService;
  
  
    @Override
    public void execute() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");
    }

}
 


 xxl-job学习(一篇文章解决),学习


package com.xxl.job.service.handler;

import com.cskt.service.HelloService;
import com.xxl.job.core.handler.IJobHandler;
import org.springframework.beans.factory.annotation.Autowired;

public class DemoGlueJobHandler extends IJobHandler {


    @Autowired
    private HelloService helloService;


    @Override
    public void execute() throws Exception {
        helloService.methodA();
    }


}


然后点击保存


xxl-job学习(一篇文章解决),学习


接下来在我们的任务管理执行一次,看看输出效果,输出就表示成功


xxl-job学习(一篇文章解决),学习文章来源地址https://www.toymoban.com/news/detail-684211.html

到了这里,关于xxl-job学习(一篇文章解决)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • XXL-JOB详细说明

    单机:Timer、ExectorService、spring@scheduled 分布式:xxl-job、quartz、elastic-job 由调度中心和执行器组成,调度中心提供一个web管理配置任务和执行器,调度中心通过rpc触发执行器 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状

    2024年02月10日
    浏览(57)
  • xxl-Job基础配置

    介绍: XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 几个特性: 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改

    2024年02月09日
    浏览(26)
  • XXL-JOB任务分片

    单个任务:一个任务实例便可完成 单机单任务:单机模式下任何路由模式都只有一个实例执行 集群单任务:由路由策略(广播模式除外)选择其中一个实例完成 分片任务:集群部署,每个实例都同时执行一部分数据。分片方式:取模分片,范围分片 单机多任务分片:单机模式

    2024年02月08日
    浏览(46)
  • Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器)

    注意:a.文件内IP替换成自己本机IP; b.数据库连接、用户密码根据自己情况修改; 注意:根据自己Python脚本需要添加python3第三方包; 注意:xxl-job-executor-sample-springboot-2.2.0.jar 为xxl-job的执行器jar包 可从github上拉取源码打包成jar 这里提供该文件csdn下载地址:https://download.csdn.

    2024年02月14日
    浏览(31)
  • 【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

                                    💧 分布式任务调度平台 X X L − J O B 急速入门:从零开始将 X X L − J O B 接入到自己的项目 color{#FF1493}{分布式任务调度平台 XXL-JOB 急速入门:从零开始将 XXL-JOB 接入到自己的项目} 分布式任务调度平台 XX L − J OB 急速入门:从零

    2024年02月14日
    浏览(35)
  • XXL-JOB深入浅出

    由于我们部门分布式任务调动框架使用的是xxl-job,在平时的开发过程中使用的频次也比较多,但是目前使用的模式比较单一,有些小伙伴可能还不清楚其架构及执行原理(希望同事看到别打我),这节将带大家一起认识一下xxl-job。 在介绍分布式任务调度之前,我们先看看实

    2024年02月04日
    浏览(25)
  • xxl-job架构原理讲解

    调度中心是一个单独的Web服务,主要是用来触发定时任务的执行 它提供了一些页面操作,我们可以很方便地去管理这些定时任务的触发逻辑 调度中心依赖数据库,所以数据都是存在数据库中的 调度中心也支持集群模式,但是它们所依赖的数据库必须是同一个 所以同一个集群

    2024年02月21日
    浏览(27)
  • docker 安装 xxl-job

    2024年02月05日
    浏览(27)
  • 动态创建xxl-job任务

    1.需求背景:微信小程序秒杀模块有个订阅功能,当用户点击完订阅后,要在活动开始的前10分钟调用微信接口发送订阅消息给用户 2.思路:本地创建秒杀订阅表,当用户添加或者取消时对应表中数据的增删,添加数据时动态创建一条xxljob的定时任务,取消时删除它 xxl-job有两种创建任务

    2024年02月12日
    浏览(30)
  • xxl-job重复执行问题

    一,xxl-job服务 集群部署(两台) 二,问题描述 有一个job1min执行一次,查询一个中间表数据,循环发生esb,得到结果,更新表。当数据量比较大时,会出现数据重复发送了esb,推测job重复执行了,业务耗时比较长,超过了1min,下一个job时间到了,再次查询,取到了同样的数

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包