下载框架
- github上下载xxl-job工程: xxl-job-admin
导入idea
一个是后台管理系统模块
一个是core核心模块(提供依赖的)
一个是提供的整合案例
导入数据库
在项目下的 ./doc/db/
下有sql文件
连接数据库
修改admin模块的application.properties配置文件的数据库相关参数,根据需要修改发送邮箱等参数;
admin模块的端口默认是8080
==修改:26,27,28行==
启动项目
访问:http://localhost:8080/xxl-job-admin
默认用户名密码:admin/123456
打包项目
项目上可以将admin模块打包,以java -jar的方式启动
打包时会报xxl-job-core依赖找不着, 在pom中配上core的maven依赖即可
打包成功
业务代码
项目服务工程
- 配置文件:
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.name
和xxl.job.executor.appname
保持一致。
验证
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"]
- 制作镜像
- RUN
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)