From 1ec5a6e1d1c16facc40cb8c032d8072b095ab22c Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Mon, 20 May 2024 15:46:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.0.0):=20=E4=BC=98=E5=8C=96=E5=89=94?= =?UTF-8?q?=E9=99=A4=E4=B8=8B=E7=BA=BF=E6=9C=BA=E5=99=A8=E6=AD=BB=E9=94=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/sql/snail_job_mysql.sql | 2 +- .../server/starter/schedule/OfflineNodeSchedule.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/sql/snail_job_mysql.sql b/doc/sql/snail_job_mysql.sql index aab93bad..e943b964 100644 --- a/doc/sql/snail_job_mysql.sql +++ b/doc/sql/snail_job_mysql.sql @@ -73,7 +73,7 @@ CREATE TABLE `sj_notify_recipient` `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id', `recipient_name` varchar(64) NOT NULL COMMENT '接收人名称', - `notify_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书', + `notify_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书 5 webhook', `notify_attribute` varchar(512) NOT NULL COMMENT '配置属性', `description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述', `create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', diff --git a/snail-job-server/snail-job-server-starter/src/main/java/com/aizuda/snailjob/server/starter/schedule/OfflineNodeSchedule.java b/snail-job-server/snail-job-server-starter/src/main/java/com/aizuda/snailjob/server/starter/schedule/OfflineNodeSchedule.java index 48e24bea..c6d780ff 100644 --- a/snail-job-server/snail-job-server-starter/src/main/java/com/aizuda/snailjob/server/starter/schedule/OfflineNodeSchedule.java +++ b/snail-job-server/snail-job-server-starter/src/main/java/com/aizuda/snailjob/server/starter/schedule/OfflineNodeSchedule.java @@ -18,6 +18,7 @@ import org.springframework.util.CollectionUtils; import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -42,8 +43,13 @@ public class OfflineNodeSchedule extends AbstractSchedule implements Lifecycle { LocalDateTime endTime = LocalDateTime.now().minusSeconds( ServerRegister.DELAY_TIME + (ServerRegister.DELAY_TIME / 3)); - // 先删除DB中需要下线的机器 - serverNodeMapper.delete(new LambdaQueryWrapper().le(ServerNode::getExpireAt, endTime)); + List serverNodes = serverNodeMapper.selectList( + new LambdaQueryWrapper().select(ServerNode::getId) + .le(ServerNode::getExpireAt, endTime)); + if (!CollectionUtils.isEmpty(serverNodes)) { + // 先删除DB中需要下线的机器 + serverNodeMapper.deleteBatchIds(serverNodes.stream().map(ServerNode::getId).collect(Collectors.toSet())); + } Set allPods = CacheRegisterTable.getAllPods(); Set waitOffline = allPods.stream().filter(registerNodeInfo -> registerNodeInfo.getExpireAt().isBefore(endTime)).collect(