含义
集群模式下,一个任务会根据路由策略只打到一个节点上执行。
如何使用
本地测试目的
- 验证任务类型为集群时,只有一个客户端会被调度执行任务
- 验证日志是否可以正常记录在客户端、服务端
页面配置参数
配置项 | 配置内容 |
---|---|
任务名称 | 注解定时任务 |
组名称 | 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个节点
结果
任务调度结果
只有一个节点接收到的调度请求
![](/sj_job_config_image/6.png)
日志执行结果
客户端本地日志正常打印、服务端线上日志正常记录
![](/sj_job_config_image/7.png)
![](/sj_job_config_image/8.png)
总结
- 当任务类型为集群时,只会有一个节点执行调度任务
- 服务端日志上报正常,客户端日志打印正常