完成学习xxl-job
This commit is contained in:
46
docker-compose-xxljob.yml
Normal file
46
docker-compose-xxljob.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
services:
|
||||||
|
# MySQL 服务(无数据持久化)
|
||||||
|
mysql:
|
||||||
|
image: mysql:8.0
|
||||||
|
container_name: xxl-job-mysql
|
||||||
|
ports:
|
||||||
|
- "3307:3306"
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=123456
|
||||||
|
- MYSQL_DATABASE=xxl_job
|
||||||
|
- MYSQL_ROOT_HOST=%
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
command: --default-authentication-plugin=mysql_native_password
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- xxl-job-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-p123456"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 3s
|
||||||
|
retries: 10
|
||||||
|
start_period: 10s
|
||||||
|
|
||||||
|
# XXL-Job 调度中心(核心,无持久化)
|
||||||
|
xxl-job-admin:
|
||||||
|
image: xuxueli/xxl-job-admin:2.4.1
|
||||||
|
container_name: xxl-job-admin
|
||||||
|
ports:
|
||||||
|
- "8085:8080"
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
|
||||||
|
- SPRING_DATASOURCE_USERNAME=root
|
||||||
|
- SPRING_DATASOURCE_PASSWORD=123456
|
||||||
|
- XXL_JOB_ACCESS_TOKEN=default_token
|
||||||
|
- XXL_JOB_LOG_RETENTION_DAYS=30
|
||||||
|
depends_on:
|
||||||
|
mysql:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- xxl-job-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
xxl-job-network:
|
||||||
|
driver: bridge
|
||||||
@@ -82,5 +82,9 @@
|
|||||||
<groupId>org.apache.rocketmq</groupId>
|
<groupId>org.apache.rocketmq</groupId>
|
||||||
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.xuxueli</groupId>
|
||||||
|
<artifactId>xxl-job-core</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package cn.mayiming.Config;
|
||||||
|
|
||||||
|
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class XxlJobConfig {
|
||||||
|
|
||||||
|
@Value("${xxl.job.admin.addresses}")
|
||||||
|
private String adminAddresses;
|
||||||
|
|
||||||
|
@Value("${xxl.job.executor.appname}")
|
||||||
|
private String appname;
|
||||||
|
|
||||||
|
@Value("${xxl.job.accessToken}")
|
||||||
|
private String accessToken;
|
||||||
|
|
||||||
|
@Value("${xxl.job.executor.port}")
|
||||||
|
private int port;
|
||||||
|
|
||||||
|
// 初始化XXL-Job执行器
|
||||||
|
@Bean
|
||||||
|
public XxlJobSpringExecutor xxlJobExecutor() {
|
||||||
|
XxlJobSpringExecutor executor = new XxlJobSpringExecutor();
|
||||||
|
executor.setAdminAddresses(adminAddresses);
|
||||||
|
executor.setAppname(appname);
|
||||||
|
executor.setAccessToken(accessToken);
|
||||||
|
executor.setPort(port);
|
||||||
|
return executor;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package cn.mayiming.JobHandler;
|
||||||
|
|
||||||
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class executorDemo {
|
||||||
|
@XxlJob("demoJobHandler")
|
||||||
|
public void demoJobHandler() {
|
||||||
|
// 这里写你的业务逻辑,比如:
|
||||||
|
System.out.println("XXL-Job 执行器任务执行成功!当前时间:" + System.currentTimeMillis());
|
||||||
|
|
||||||
|
// 示例:定时订单超时取消、数据同步、日志清理等都可以写在这里
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -52,4 +52,13 @@ rocketmq:
|
|||||||
# 消息最大长度(默认4M)
|
# 消息最大长度(默认4M)
|
||||||
max-message-size: 4194304
|
max-message-size: 4194304
|
||||||
# 压缩消息阈值(超过4K自动压缩)
|
# 压缩消息阈值(超过4K自动压缩)
|
||||||
compress-message-body-threshold: 4096
|
compress-message-body-threshold: 4096
|
||||||
|
|
||||||
|
xxl:
|
||||||
|
job:
|
||||||
|
admin:
|
||||||
|
addresses: http://localhost:8085/xxl-job-admin # 调度中心访问地址(端口按你实际配置的来)
|
||||||
|
executor:
|
||||||
|
appname: xxl-job-executor-demo # 必须和控制台创建的执行器AppName完全一致!
|
||||||
|
port: 9999 # 执行器端口(默认9999,可改)
|
||||||
|
accessToken: default_token # 和调度中心的token一致(默认default_token)
|
||||||
5
pom.xml
5
pom.xml
@@ -113,6 +113,11 @@
|
|||||||
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
||||||
<version>2.3.4</version> <!-- 适配 RocketMQ 5.x,建议2.2.x+ -->
|
<version>2.3.4</version> <!-- 适配 RocketMQ 5.x,建议2.2.x+ -->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.xuxueli</groupId>
|
||||||
|
<artifactId>xxl-job-core</artifactId>
|
||||||
|
<version>2.4.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user