首页 > 其他分享 >XXL-job 使用

XXL-job 使用

时间:2024-06-14 23:33:00浏览次数:16  
标签:executor Value job 使用 import XXL xxlJobSpringExecutor xxl

1、找到XXL-job官网去下代码
https://github.com/xuxueli/xxl-job
2、下载下来用IDEA打开,你会得到这样子的目录结构

3、打开doc目录下面有个db,在你数据库里面创建对应的数据库
4、运行服务端 xxl-job-admin


登录进去账号admin 密码123456
好了,现在我们服务端启动好了
5、创建一个springboot项目
application.properties

# \u5E94\u7528\u670D\u52A1 WEB \u8BBF\u95EE\u7AEF\u53E3
server.port=8089

#xx-job \u914D\u7F6E\u4FE1\u606F 这你放你的服务端地址
xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin

### xxl-job, access token
xxl.job.accessToken=default_token

### xxl-job executor appname 这个是你创建执行器的名字
xxl.job.executor.appname=test
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
xxl.job.executor.port=9999
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30

xxjobconfig

package com.xxjob.config;

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * xxl-job config
 *
 * @author xuxueli 2017-04-28
 */
@Configuration
public class XxjobConfig {
    private Logger logger = LoggerFactory.getLogger(XxjobConfig.class);

    @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.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

    /**
     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
     *
     *      1、引入依赖:
     *          <dependency>
     *             <groupId>org.springframework.cloud</groupId>
     *             <artifactId>spring-cloud-commons</artifactId>
     *             <version>${version}</version>
     *         </dependency>
     *
     *      2、配置文件,或者容器启动变量
     *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
     *
     *      3、获取IP
     *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
     */


}

controller

package com.xxjob.controller;

import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class jobController {

    @XxlJob("MyJobHandler")
    public void execute() throws Exception {
        System.out.println("我成功的执行了xxjob定时任务!!!!");
    }
}

目录结构为这样

6、回到我们刚才的页面

去新增一个执行器管理

APPName填写你application里面的那个appnanme
名称是一个类似于备注
注册选择自动注册
机器地址可以不填写
7、创建好之后

选择你刚刚创建的那个执行器,然后新增任务
8、新增任务

选择你的执行器,任务描述,负责人填写
然后Cron表达式,表示任务执行的时间
重点是JobHandler对应后台 @XxlJob("MyJobHandler")里面手写的这个handler
然后默认保存
9、操作

执行一次,就能在你控制台就看到输出

启动就是按照你设置的cron表达式去执行这个任务。

标签:executor,Value,job,使用,import,XXL,xxlJobSpringExecutor,xxl
From: https://www.cnblogs.com/pao1pao/p/18248838

相关文章

  • Minio使用(Minio帮助类 3.1.13版本 )
    目录一、安装部署二、注册成window服务三、C#文件上传下载四、minio文件操作帮助类一、安装部署1、下载安装包:MinIO|高性能,对Kubernetes友好的对象存储2、放到磁盘中,后面会以这个文件进行服务器安装3、磁盘新建一个目录用于存放上传文件,比如我创建的为:Data4、......
  • 【C语言习题】30.使用指针打印数组内容
    文章目录作业标题作业内容2.解题思路3.具体代码作业标题使用指针打印数组内容作业内容写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。2.解题思路先定义一个数组,使用指针打印数组内容那就是说我们可以通过对指针解引用,来访问......
  • Java--数组的使用
    1.普通For循环(用的最多,需从中取出数据以及下标)        eg:图中三类问题都可2.For-each循环(一般用来打印一些结果)    eg:打印数组的具体元素3.数组作方法入参(对数组进行一些操作)    eg:可通过参数调用数组4.数组做返回值(对数组进行修改,最后返回一......
  • Linux openSSH 只能够使用SFTP 不能使用ssh登陆
    实施目标:1. 用户只能通过sftp访问,不能登录SSH2.用户要被锁定在特定的目录下,没有读写其它目录的权限 下面开始:首先修改sshd的配置文件:#vim/etc/ssh/sshd_config将该文件的末尾修改如下:#Subsystem sftp /usr/lib/openssh/sftp-server#该行(上面这行)注释掉Subsystem sftp......
  • QVector使用详解
    QVector使用详解一、创建和初始化1.默认构造函数2.指定大小的构造函数3.指定大小和初始值的构造函数4.使用std::initializer_list初始化5.拷贝构造函数6.从指针和大小初始化7.使用std::vector初始化8.使用`QList`初始化9.使用`QVector`初始化`QList`1......
  • Gateway内网关的详细使用说明,包含由于版本问题、依赖问题引起的动态路由转发问题的详
    资料的连接官方文档https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html基本的概念相关属性Route:一个Route由路由ID(用来绑定哪一个微服务),转发URI(转移的目标URL),多个Predicates以及多个Filters构成。Gateway上可以配置多个Rou......
  • OpenAI函数调用:使用Assistants API函数工具的一个示例
    AreyoulookingtoexpandGPT'scapabilities?CheckoutthistutorialforacompleteexampleofanAIAssistantthatcansendemailswheneverweaskitto.您是否希望扩展GPT的功能?查看这个教程,它提供了一个完整的示例,展示了一个AI助手如何在我们要求时发送电子邮......
  • 第十周:使用PyTorch实现车牌识别
    ......
  • MSF渗透使用说明
    实验环境前提:对方的445端口必须开放,首先要保证是能够访问到目标机器的,那么我们先ping一下目标机器,看网络是否连通如果无法ping的话,对方机器必须要关闭防火墙,或许有其他方法在对方开启防火墙的情况下访问到对方?目前采用关闭防火墙使用工具:kali......
  • 代码随想录算法训练营第38天 | 509. 斐波那契数 、70. 爬楼梯 、746. 使用最小花费爬
    理论基础无论大家之前对动态规划学到什么程度,一定要先看我讲的动态规划理论基础。如果没做过动态规划的题目,看我讲的理论基础,会有感觉是不是简单题想复杂了?其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!如果做过动态规划题目的录友,看我的理论基础就......