【个人技术经验及开发技巧分享】 【个人技术经验及开发技巧分享】
首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载

Louis

首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载
  • 开发杂货

  • 线上排查

  • 技巧备忘

  • 部署指南

    • Nginx安装
    • Nginx Https证书安装
    • ElasticSearch安装
    • Kibana安装
    • SkyWalking链路追踪
    • Zookeeper安装
    • RabbitMQ安装
    • Kafka集群搭建
    • Kafka Manager安装
    • MySQL安装
    • Canal数据同步
    • Redis高可用集群搭建
    • XXL-JOB本地部署
      • 1 拉取代码
      • 2 执行SQL脚本
      • 3 修改xxl-job-admin配置文件
      • 4 启动xxl-job-admin服务
      • 5 整合springboot项目
        • 5.1 添加相关依赖包
        • 5.2 添加XxlJobConfig配置文件
        • 5.3 添加jobhandler
        • 5.4 xxl-job-admin添加相应任务
        • 5.5 运行项目
    • ELk+Filebeat部署
    • Nacos源码本地运行
  • 技术应用
  • 部署指南
luoxiaofeng
2022-05-28
目录

XXL-JOB本地部署

# 1 拉取代码

项目地址

https://gitee.com/xuxueli0323/xxl-job.git

image-20220528183231191

# 2 执行SQL脚本

执行tables_xxl_job.sql

image-20220528183450281

# 3 修改xxl-job-admin配置文件

修改数据库地址

application.properties

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
1
2
3
4

# 4 启动xxl-job-admin服务

image-20220528185505829

初始账号密码:admin/123456

image-20220528185602041

# 5 整合springboot项目

拉取的项目代码中已经包括了springboot整合示例:xxl-job-executor-sample-springboot

# 5.1 添加相关依赖包

版本号跟xxl-job-admin的保持一致

<!-- xxl-job-core -->
<dependency>
  <groupId>com.xuxueli</groupId>
  <artifactId>xxl-job-core</artifactId>
  <version>2.3.1</version>
</dependency>
1
2
3
4
5
6

# 5.2 添加XxlJobConfig配置文件

可直接拷贝示例的代码

package com.xxl.job.executor.core.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 XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.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();
     */

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

# 5.3 添加jobhandler

package com.xxl.job.executor.service.jobhandler;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

@Component
public class SampleXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);

    /**
     * 简单任务示例(Bean模式)
     */
    @XxlJob("louisHandler")
    public void louisHandler() throws Exception {
        System.out.println("XXL-JOB, louis." + System.currentTimeMillis());
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 5.4 xxl-job-admin添加相应任务

新增执行器

image-20220528190752230

AppName需与项目中的配置一致

application.properties

xxl.job.executor.appname=xxl-job-executor-sample-louis
1

新增任务

image-20220528191319077

# 5.5 运行项目

控制台打印结果

XXL-JOB, louis.1653737632410
XXL-JOB, louis.1653737640101
XXL-JOB, louis.1653737650076
XXL-JOB, louis.1653737660078
XXL-JOB, louis.1653737670101
XXL-JOB, louis.1653737680081
XXL-JOB, louis.1653737690084
1
2
3
4
5
6
7
#安装部署#定时任务
Redis高可用集群搭建
ELk+Filebeat部署

← Redis高可用集群搭建 ELk+Filebeat部署→

最近更新
01
SpringBoot
10-21
02
Spring
10-20
03
Sentinel
10-14
更多文章>
Copyright © 2022-2023 Louis | 粤ICP备2022060093号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式