Skip to content

下载框架

导入idea

一个是后台管理系统模块

一个是core核心模块(提供依赖的)

一个是提供的整合案例

1.png

导入数据库

在项目下的 ./doc/db/ 下有sql文件

1.png

1.png

连接数据库

修改admin模块的application.properties配置文件的数据库相关参数,根据需要修改发送邮箱等参数;

admin模块的端口默认是8080

==修改:26,27,28行==

1.png

启动项目

访问:http://localhost:8080/xxl-job-admin

默认用户名密码:admin/123456

1.png2.png

打包项目

项目上可以将admin模块打包,以java -jar的方式启动

1.png

打包时会报xxl-job-core依赖找不着, 在pom中配上core的maven依赖即可

1.png

1.png

打包成功

1.png

业务代码

项目服务工程

  • 配置文件:
yml

spring:
  application:
    name: xxl-job-fansirStudy

--- # xxl-job 配置
xxl.job:
  # 执行器开关
  enabled: true
  # 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
  admin-addresses: http://localhost:9100/xxl-job-admin
  # 执行器通讯TOKEN:非空时启用
  access-token: default_token
  executor:
    # 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册
    appname: xxl-job-fansirStudy
    # 执行器端口号 执行器从9101开始往后写
    port: 9101
    # 执行器注册:默认IP:PORT
    address:
    # 执行器IP:默认自动获取IP
    ip:
    # 执行器运行日志文件存储磁盘路径
    logpath: ./logs/xxl-job
    # 执行器日志文件保存天数:大于3生效
    logretentiondays: 30
  • 新建SendMsgService
java
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.UUID;


@Component
@Slf4j
public class SendMsgService extends IJobHandler {
    
    @XxlJob("MyJobHandler")
    @Override
    public void execute() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");
        log.info("给用户:{} 发送短信!", UUID.randomUUID().toString());
    }
}

执行器名称和 spring.application.namexxl.job.executor.appname 保持一致。

1.png

2.png

验证

1.png

Dockerfile 部署

FROM openjdk:8-jre-slim
MAINTAINER xuxueli

ENV PARAMS=""

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /sxpcwlkj/xxljob
RUN mkdir -p /sxpcwlkj/xxljob/logs
RUN mkdir -p /sxpcwlkj/xxljob/files

WORKDIR /sxpcwlkj/xxljob

ENV SERVER_PORT=9100

EXPOSE ${SERVER_PORT}

ADD ./target/xxl-job.jar ./app.jar

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=${SERVER_PORT}", "-jar", "app.jar"]
  • 制作镜像

1.png

  • RUN

1.png

docker-compose

bash

  # Xxl-job
  xxljob:
    image: sxpcwlkj/xxljob:1.0.0
    container_name: xxljob
    environment:
      # 时区上海
      TZ: Asia/Shanghai
      SERVER_PORT: 9100
    volumes:
      # 配置文件
      - /docker/xxljob/logs/:/sxpcwlkj/xxljob/logs/
      - /docker/xxljob/files/:/sxpcwlkj/xxljob/files/
    privileged: true
    network_mode: "host"
```

* 启动

`docker-compose up -d xxljob`

* 日志

`docker-compose logs -f  xxljob`

* 访问

`http://服务器ip:9100/xxl-job-admin/`

账号密码:admin  /  123456

# 扩展

刷新,这里的注册地址会根据 服务端项目的注册地址:

```
xxl.job:
  # 执行器开关
  enabled: true
  # 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
  admin-addresses: http://localhost:9100/xxl-job-admin
```
![1.png](https://sxpcwlkj.oss-cn-beijing.aliyuncs.com/articles/29deb9a2d1d4ba3b5dda6b8ca0b9df35.png)

Released under the MIT License.