From 2e19dda72e70b525a7c269e18e963a5ee602f59f Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 3 Jun 2026 10:54:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(pipeline):=20=E4=BF=AE=E5=A4=8D=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E9=9A=8F=E6=9C=BA=E4=BF=AE=E6=94=B9=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=94=9F=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pipeline/service/pipeline-service.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts index 15829588f..40b87050f 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts @@ -48,7 +48,7 @@ import { UserSuiteEntity, UserSuiteService } from "@certd/commercial-core"; import { CertInfoService } from "../../monitor/service/cert-info-service.js"; import { TaskServiceBuilder } from "./getter/task-service-getter.js"; import { nanoid } from "nanoid"; -import { set } from "lodash-es"; +import { cloneDeep, set } from "lodash-es"; import { executorQueue } from "@certd/lib-server"; import parser from "cron-parser"; import { ProjectService } from "../../sys/enterprise/service/project-service.js"; @@ -1152,36 +1152,40 @@ export class PipelineService extends BaseService { } }); + for (const item of list) { const pipeline = JSON.parse(item.content); if (trigger.props === false) { //清除trigger pipeline.triggers = [] } else { + + const start = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[0]; + let end = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[1]; + if (trigger.randomRange[1] < trigger.randomRange[0]) { + //跨天 + end = dayjs().add(1, "day").format("YYYY-MM-DD") + " " + trigger.randomRange[1]; + } + const startTime = dayjs(start).valueOf(); + const endTime = dayjs(end).valueOf(); + + const triggerConf = cloneDeep(trigger); if (trigger.random === true) { //随机时间 - const start = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[0]; - let end = dayjs().format("YYYY-MM-DD") + " " + trigger.randomRange[1]; - if (trigger.randomRange[1] < trigger.randomRange[0]) { - //跨天 - end = dayjs().add(1, "day").format("YYYY-MM-DD") + " " + trigger.randomRange[1]; - } - const startTime = dayjs(start).valueOf(); - const endTime = dayjs(end).valueOf(); const randomTime = Math.floor(Math.random() * (endTime - startTime)) + startTime; const time = dayjs(randomTime).format(" ss:mm:HH").replaceAll(":", " ").replaceAll(" 0", " ").trim(); - set(trigger, "props.cron", `${time} * * *`) + set(triggerConf, "props.cron", `${time} * * *`) } - delete trigger.random - delete trigger.randomRange; + delete triggerConf.random + delete triggerConf.randomRange; pipeline.triggers = [{ id: nanoid(), title: "定时触发", - ...trigger + ...triggerConf }]; } - await this.doUpdatePipelineJson(item, pipeline); + } }