集群模式
含义
集群模式下,一个任务会根据路由策略只打到一个节点上执行。
如何使用
本地测试目的
- 验证任务类型为集群时,只有一个客户端会被调度执行任务
- 验证日志是否可以正常记录在客户端、服务端
页面配置参数
| 配置项 | 配置内容 |
|---|---|
| 任务名称 | 注解定时任务 |
| 组名称 | service_plat |
| 状态 | 启用 |
| 任务类型 | 集群 |
| 执行器类型 | java |
| 执行器名称 | testSnailJobWithAnnotation |
| 方法参数 | |
| 路由策略 | 轮询 |
| 阻塞策略 | 丢弃 |
| 触发类型 | 固定时间 |
| 间隔时长 | 60秒 |
| 超时时间(秒) | 60秒 |
| 最大重试次数 | 0 |
| 重试间隔 | 1秒 |
客户端代码
java
@Slf4j
@Component
@JobExecutor(name = "testSnailJobWithAnnotation")
public class TestSnailJobWithAnnotation {
public ExecuteResult jobExecute(JobArgs jobArgs) {
log.info("定时任务执行成功.参数值:{}", jobArgs);
SnailJobLog.LOCAL.info("LOCAL日志.参数值:{}", jobArgs);
SnailJobLog.REMOTE.info("REMOTE日志.参数值:{}", jobArgs);
return ExecuteResult.success("测试注解方式的定时任务成功");
}
}Idea启动多个节点配置
shell
server.port=web端口 spring.profiles.active=执行环境
-Dserver.port=9901 -Dspring.profiles.active=dev-one
-Dserver.port=9902 -Dspring.profiles.active=dev-two
-Dserver.port=9903 -Dspring.profiles.active=dev-three服务端查看节点信息
同时启动3个节点
结果
任务调度结果
只有一个节点接收到的调度请求

日志执行结果
客户端本地日志正常打印、服务端线上日志正常记录


总结
- 当任务类型为集群时,只会有一个节点执行调度任务
- 服务端日志上报正常,客户端日志打印正常