fix: 定时任务新增指定调度IP

This commit is contained in:
2024-07-09 23:14:59 +08:00
parent 35550db2a7
commit c8004cf002
3 changed files with 23 additions and 10 deletions

View File

@@ -35,17 +35,20 @@ public class JobRunner implements ApplicationRunner {
//本机IP //本机IP
String localIp = NetUtil.getLocalhostStr(); String localIp = NetUtil.getLocalhostStr();
System.out.println("本机ip"+localIp); System.out.println("本机ip"+localIp);
//选择需要开启定时任务的服务器ip
String quartzIp = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("QUARTZ_IP").getValue();
if (!localIp.equals(quartzIp)) {
log.info("--------------------定时任务未开启,请检查配置!---------------------");
System.out.println("--------------------定时任务未开启,请检查配置!---------------------");
return;
}
log.info("--------------------注入定时任务---------------------"); log.info("--------------------注入定时任务---------------------");
List<SysQuartzJob> quartzJobs = quartzJobService.findByIsPauseIsFalse(); List<SysQuartzJob> quartzJobs = quartzJobService.findByIsPauseIsFalse();
quartzJobs.forEach(quartzManage::addJob); quartzJobs.forEach(job -> {
if (localIp.equals(job.getJob_ip())) {
log.info("定时任务:{}, 执行ip: {}, 定时任务开启", job.getJob_name(), localIp);
System.out.println("定时任务: " + job.getJob_name() + ", 执行ip: " + localIp + ", 定时任务开启");
quartzManage.addJob(job);
} else {
log.info("定时任务 {} 未开启, 本机ip{} 与 调度ip{} 不同", job.getJob_name(), localIp, job.getJob_ip());
System.out.println("定时任务 " + job.getJob_name() + " 未开启, 本机ip: " + localIp + " 与 调度ip: " + job.getJob_ip() + " 不同");
}
});
log.info("--------------------定时任务注入完成---------------------"); log.info("--------------------定时任务注入完成---------------------");
} }

View File

@@ -124,4 +124,9 @@ public class SysQuartzJob implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String uuid; private String uuid;
/**
* 调度IP
*/
private String job_ip;
} }

View File

@@ -71,6 +71,9 @@
<el-form-item label="告警邮箱" prop="email"> <el-form-item label="告警邮箱" prop="email">
<el-input v-model="form.email" placeholder="多个邮箱用逗号隔开" style="width: 220px;" /> <el-input v-model="form.email" placeholder="多个邮箱用逗号隔开" style="width: 220px;" />
</el-form-item> </el-form-item>
<el-form-item label="调度IP" prop="email">
<el-input v-model="form.job_ip" placeholder="执行定时器的ip地址" style="width: 220px;" />
</el-form-item>
<el-form-item label="失败后暂停"> <el-form-item label="失败后暂停">
<el-radio-group v-model="form.pause_after_failure" style="width: 220px"> <el-radio-group v-model="form.pause_after_failure" style="width: 220px">
<el-radio :label="true">是</el-radio> <el-radio :label="true">是</el-radio>
@@ -104,6 +107,7 @@
<el-table-column show-overflow-tooltip prop="job_id" label="任务ID" /> <el-table-column show-overflow-tooltip prop="job_id" label="任务ID" />
<el-table-column show-overflow-tooltip prop="job_name" label="任务名称" min-width="120" /> <el-table-column show-overflow-tooltip prop="job_name" label="任务名称" min-width="120" />
<el-table-column show-overflow-tooltip prop="bean_name" label="Bean名称" /> <el-table-column show-overflow-tooltip prop="bean_name" label="Bean名称" />
<el-table-column show-overflow-tooltip prop="job_ip" label="调度IP" />
<el-table-column show-overflow-tooltip prop="method_name" label="执行方法" /> <el-table-column show-overflow-tooltip prop="method_name" label="执行方法" />
<el-table-column show-overflow-tooltip prop="params" label="参数" /> <el-table-column show-overflow-tooltip prop="params" label="参数" />
<el-table-column <el-table-column
@@ -206,6 +210,7 @@ const defaultForm = {
person_in_charge: null, person_in_charge: null,
email: null, email: null,
sub_task: null, sub_task: null,
job_ip: null,
pause_after_failure: true pause_after_failure: true
} }
export default { export default {