From 0eab7cbf4f509b800f9883c2daf44fbcc510c1d2 Mon Sep 17 00:00:00 2001 From: Hope Li <1278288511@qq.com> Date: Mon, 5 May 2025 21:01:32 +0800 Subject: [PATCH] =?UTF-8?q?5/5=20ljc=20=E8=A1=A5=E5=85=85trigger=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=9D=97=EF=BC=9B=20=E6=96=B0=E5=A2=9Eutil/variable/v?= =?UTF-8?q?ersion/wehHook=E6=A8=A1=E5=9D=97=EF=BC=9B=20task=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=BB=A3=E7=A0=81=E5=88=9D=E6=AD=A5=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E5=8C=85=E5=90=AB=E5=AD=90=E6=A8=A1=E5=9D=97artifact/?= =?UTF-8?q?build/code/codescan=EF=BC=9B=20=E8=B0=83=E6=95=B4=E9=83=A8?= =?UTF-8?q?=E5=88=86service=E5=92=8Cimpl=E4=BD=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E7=BB=9F=E4=B8=80=E5=8C=85=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=8C=E5=AF=B9service=E5=92=8Cimpl?= =?UTF-8?q?=E7=9B=B8=E4=BA=92=E5=85=B3=E7=B3=BB=E5=81=9A=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BB=A5=E5=8F=8A=E7=BC=96=E8=AF=91=E8=B0=83?= =?UTF-8?q?=E8=AF=95=EF=BC=88=E5=8F=AF=E8=83=BD=E5=BD=B1=E5=93=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8E=9F=E5=85=88=E5=8C=85=E7=9B=AE=E5=BD=95=E7=BB=93?= =?UTF-8?q?=E6=9E=84=EF=BC=89=EF=BC=9B=20=E6=96=B0=E5=A2=9E=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=B7=A5=E5=85=B7=E7=B1=BB/=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=B3=BB=E7=BB=9F=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/process/definition}/Variable.java | 2 +- .../process/core/context/LoginContext.java | 22 +++++ .../execute/impl/PipelineExecServiceImpl.java | 2 +- .../service/impl/PipelineExecServiceImpl.java | 2 +- .../support/trigger/dao/TriggerTimeDao.java | 13 +++ .../trigger/dateObject/TriggerTime.java | 2 + .../trigger/quartz/{job.java => Job.java} | 6 +- .../support/trigger/quartz/RunJob.java | 87 +++++++++++++++++++ .../service/impl/TriggerTimeServiceImpl.java | 11 ++- .../support/variable/dao/VariableDao.java | 2 +- .../variable/service/VariableService.java | 2 +- .../service/impl/ExecVariableServiceImpl.java | 12 +++ .../service/impl/VariableServiceImpl.java | 2 +- 13 files changed, 153 insertions(+), 12 deletions(-) rename modules/{module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/model => module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition}/Variable.java (94%) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/core/context/LoginContext.java rename modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/{job.java => Job.java} (99%) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/RunJob.java diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/model/Variable.java b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/Variable.java similarity index 94% rename from modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/model/Variable.java rename to modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/Variable.java index 26471b4..6896052 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/model/Variable.java +++ b/modules/module-ci-commons/src/main/java/cd/casic/ci/commons/bean/process/definition/Variable.java @@ -1,4 +1,4 @@ -package cd.casic.module.process.support.variable.model; +package cd.casic.ci.commons.bean.process.definition; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/core/context/LoginContext.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/core/context/LoginContext.java new file mode 100644 index 0000000..0ea16a4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/core/context/LoginContext.java @@ -0,0 +1,22 @@ +package cd.casic.module.process.core.context; + +/** + * @ClassName LoginContext + * @Author hopeli + * @Date 2025/5/5 20:54 + * @Version 1.0 + */ +public class LoginContext { + private static String loginId; + + public LoginContext() { + } + + public static String getLoginId() { + return loginId; + } + + public static void setLoginId(String loginId) { + LoginContext.loginId = loginId; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java index 85994e8..39109ae 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/engine/execute/impl/PipelineExecServiceImpl.java @@ -4,7 +4,7 @@ import cd.casic.ci.commons.bean.engine.execute.PipelineDetails; import cd.casic.ci.commons.bean.engine.execute.PipelineRunMsg; import cd.casic.ci.commons.bean.engine.postprocess.Postprocess; import cd.casic.ci.commons.bean.process.definition.Pipeline; -import cd.casic.module.process.support.variable.model.Variable; +import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.ci.commons.bean.process.instance.PipelineInstance; import cd.casic.ci.commons.bean.process.instance.PipelineInstanceQuery; import cd.casic.ci.commons.bean.process.setting.Scm; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/execute/service/impl/PipelineExecServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/execute/service/impl/PipelineExecServiceImpl.java index 547d457..91ac007 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/execute/service/impl/PipelineExecServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/pipeline/execute/service/impl/PipelineExecServiceImpl.java @@ -6,7 +6,7 @@ import cd.casic.ci.commons.bean.engine.execute.PipelineRunMsg; import cd.casic.ci.commons.bean.engine.postprocess.Postprocess; import cd.casic.ci.commons.bean.exception.SystemException; import cd.casic.ci.commons.bean.process.definition.Pipeline; -import cd.casic.module.process.support.variable.model.Variable; +import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.ci.commons.bean.process.instance.PipelineInstance; import cd.casic.ci.commons.bean.process.instance.PipelineInstanceQuery; import cd.casic.ci.commons.bean.process.setting.Scm; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dao/TriggerTimeDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dao/TriggerTimeDao.java index a60288c..b794910 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dao/TriggerTimeDao.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dao/TriggerTimeDao.java @@ -1,9 +1,12 @@ package cd.casic.module.process.support.trigger.dao; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; +import cd.casic.module.process.support.trigger.dateObject.TriggerTime; import cd.casic.module.process.support.trigger.entity.TriggerTimeDo; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @author by mianbin * @Classname TriggerTimeDao @@ -13,4 +16,14 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface TriggerTimeDao extends BaseMapperX { String createTime(TriggerTimeDo triggerTimeEntity); + + void deleteTime(String timeId); + + void updateTime(TriggerTimeDo triggerTimeEntity); + + TriggerTimeDo findOneTime(String timeId); + + List findAllTime(); + + List findAllTimeList(List idList); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dateObject/TriggerTime.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dateObject/TriggerTime.java index ff8e5c5..0486e5e 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dateObject/TriggerTime.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/dateObject/TriggerTime.java @@ -57,4 +57,6 @@ public class TriggerTime { */ private String state; + private int taskType; + } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/job.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/Job.java similarity index 99% rename from modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/job.java rename to modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/Job.java index c97f998..b365b94 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/job.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/Job.java @@ -18,7 +18,7 @@ import org.quartz.TriggerKey; import org.quartz.impl.StdSchedulerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.batch.BatchProperties.Job; +import org.springframework.boot.autoconfigure.batch.BatchProperties; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -37,9 +37,9 @@ import java.util.Objects; @Component @Scope("singleton") -public class job { +public class Job { - private static final Logger logger = LoggerFactory.getLogger(Job.class); + private static final Logger logger = LoggerFactory.getLogger(BatchProperties.Job.class); private static final SchedulerFactory schedulerFactory = new StdSchedulerFactory(); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/RunJob.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/RunJob.java new file mode 100644 index 0000000..e36e1ba --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/quartz/RunJob.java @@ -0,0 +1,87 @@ +package cd.casic.module.process.support.trigger.quartz; + +import cd.casic.ci.commons.bean.engine.execute.PipelineRunMsg; +import cd.casic.module.process.core.context.LoginContext; +import cd.casic.module.process.engine.execute.PipelineExecService; +import cd.casic.module.process.support.trigger.service.TriggerService; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class RunJob implements org.quartz.Job { + + public static PipelineExecService execService; + + public static Job job; + + public static TriggerService triggerService; + + private static final Logger logger = LoggerFactory.getLogger(RunJob.class); + + @Autowired + public void setExecService(PipelineExecService execService) { + RunJob.execService = execService; + } + + @Autowired + public void setQuartzManager(Job job) { + RunJob.job = job; + } + + @Autowired + public void setTriggerConfigServer(TriggerService triggerService) { + RunJob.triggerService = triggerService; + } + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + JobDataMap map = jobExecutionContext.getMergedJobDataMap(); + String pipelineId = (String)map.get("pipelineId"); + String group = (String)map.get("group"); + String weekTime = (String)map.get("weekTime"); + String cron = (String)map.get("cron"); + + String triggerName = jobExecutionContext.getTrigger().getKey().getName(); + + logger.warn("定时任务触发,组:{},流水线:{} 时间:{},",group,pipelineId,weekTime); + String loginId = LoginContext.getLoginId(); + PipelineRunMsg pipelineRunMsg = new PipelineRunMsg(pipelineId,loginId,2); + execService.start(pipelineRunMsg); + triggerService.updateTrigger(triggerName.split("_")[2]); + logger.warn("组:{},流水线:{},定时任务触发完成",group,pipelineId); + job.removeJob(group,triggerName); + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/service/impl/TriggerTimeServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/service/impl/TriggerTimeServiceImpl.java index 0d7bff2..d761927 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/service/impl/TriggerTimeServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/trigger/service/impl/TriggerTimeServiceImpl.java @@ -1,21 +1,26 @@ package cd.casic.module.process.support.trigger.service.impl; + + import cd.casic.ci.commons.bean.exception.ApplicationException; import cd.casic.ci.commons.rpc.annototion.Exporter; import cd.casic.module.process.support.trigger.dao.TriggerTimeDao; import cd.casic.module.process.support.trigger.dateObject.TriggerTime; import cd.casic.module.process.support.trigger.entity.TriggerTimeDo; +import cd.casic.module.process.support.trigger.quartz.Job; +import cd.casic.module.process.support.trigger.quartz.RunJob; import cd.casic.module.process.support.trigger.service.CronUtils; import cd.casic.module.process.support.trigger.service.TriggerTimeService; import cd.casic.module.process.toolkit.beans.BeanMapper; import jakarta.annotation.Resource; -import org.springframework.boot.autoconfigure.batch.BatchProperties.Job; +import org.quartz.SchedulerException; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map; +import static cd.casic.module.process.support.util.util.PipelineFinal.DEFAULT; /** * @ClassName TriggerTimeServiceImpl @@ -199,13 +204,13 @@ public class TriggerTimeServiceImpl implements TriggerTimeService { } public void updateTime(TriggerTime triggerTime) { - TriggerTimeEntity triggerTimeEntity = BeanMapper.map(triggerTime, TriggerTimeEntity.class); + TriggerTimeDo triggerTimeEntity = BeanMapper.map(triggerTime, TriggerTimeDo.class); triggerTimeDao.updateTime(triggerTimeEntity); } @Override public TriggerTime findOneTime(String timeId) { - TriggerTimeEntity timeEntity = triggerTimeDao.findOneTime(timeId); + TriggerTimeDo timeEntity = triggerTimeDao.findOneTime(timeId); return BeanMapper.map(timeEntity, TriggerTime.class); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/dao/VariableDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/dao/VariableDao.java index 1525bb1..331b6b8 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/dao/VariableDao.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/dao/VariableDao.java @@ -2,7 +2,7 @@ package cd.casic.module.process.support.variable.dao; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.module.process.support.variable.dataobject.VariableDo; -import cd.casic.module.process.support.variable.model.Variable; +import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.module.process.support.variable.model.VariableQuery; import org.apache.ibatis.annotations.Mapper; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/VariableService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/VariableService.java index 10f01b3..1faac04 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/VariableService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/VariableService.java @@ -1,6 +1,6 @@ package cd.casic.module.process.support.variable.service; -import cd.casic.module.process.support.variable.model.Variable; +import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.module.process.support.variable.model.VariableQuery; import java.util.List; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/ExecVariableServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/ExecVariableServiceImpl.java index d425f69..6484fbb 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/ExecVariableServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/ExecVariableServiceImpl.java @@ -1,5 +1,8 @@ package cd.casic.module.process.support.variable.service.impl; +import cd.casic.module.process.support.variable.model.ExecVariable; +import cd.casic.module.process.support.variable.service.ExecVariableService; + /** * @ClassName ExecVariableServiceImpl * @Author hopeli @@ -7,4 +10,13 @@ package cd.casic.module.process.support.variable.service.impl; * @Version 1.0 */ public class ExecVariableServiceImpl implements ExecVariableService { + @Override + public void initPipelineVariable(String pipelineId, String taskId) { + + } + + @Override + public void addExecVariable(ExecVariable variable) { + + } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/VariableServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/VariableServiceImpl.java index 5a8d574..15239fd 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/VariableServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/module/process/support/variable/service/impl/VariableServiceImpl.java @@ -3,7 +3,7 @@ package cd.casic.module.process.support.variable.service.impl; import cd.casic.ci.commons.bean.utils.PipelineUtil; import cd.casic.module.process.support.variable.dao.VariableDao; import cd.casic.module.process.support.variable.dataobject.VariableDo; -import cd.casic.module.process.support.variable.model.Variable; +import cd.casic.ci.commons.bean.process.definition.Variable; import cd.casic.module.process.support.variable.model.VariableQuery; import cd.casic.module.process.support.variable.service.VariableService; import cd.casic.module.process.toolkit.beans.BeanMapper;