From b0e6cfc049580a142a978f4070dc3744a7fb8884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E8=88=AA?= Date: Thu, 7 Mar 2024 10:19:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Etask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qihang/common/task}/IPollableService.java | 2 +- .../common/task}/SchedulingConfiguration.java | 3 +- .../java/com/qihang/jd/domain/SysTask.java | 176 ++++++++++++++++++ .../com/qihang/jd/mapper/SysTaskMapper.java | 18 ++ .../com/qihang/jd/service/SysTaskService.java | 13 ++ .../jd/service/impl/SysTaskServiceImpl.java | 22 +++ .../com/qihang/jd/task/CronTaskLoader.java | 44 +++++ .../java/com/qihang/jd/task/OrderTask.java | 26 +++ .../main/resources/mapper/SysTaskMapper.xml | 20 ++ .../sys/api/controller/HomeController.java | 4 +- .../com/qihang/sys/api/feign/EchoService.java | 3 +- .../com/qihang/sys/api/task/OrderTaskJD.java | 30 --- .../com/qihang/sys/api/task/OrderTaskTao.java | 31 +++ .../sys/api/task/core/CronTaskLoader.java | 89 +++++---- 14 files changed, 401 insertions(+), 80 deletions(-) rename {sys-api/src/main/java/com/qihang/sys/api/task/service => core/common/src/main/java/com/qihang/common/task}/IPollableService.java (90%) rename {sys-api/src/main/java/com/qihang/sys/api/task/core => core/common/src/main/java/com/qihang/common/task}/SchedulingConfiguration.java (97%) create mode 100644 jd-api/src/main/java/com/qihang/jd/domain/SysTask.java create mode 100644 jd-api/src/main/java/com/qihang/jd/mapper/SysTaskMapper.java create mode 100644 jd-api/src/main/java/com/qihang/jd/service/SysTaskService.java create mode 100644 jd-api/src/main/java/com/qihang/jd/service/impl/SysTaskServiceImpl.java create mode 100644 jd-api/src/main/java/com/qihang/jd/task/CronTaskLoader.java create mode 100644 jd-api/src/main/java/com/qihang/jd/task/OrderTask.java create mode 100644 jd-api/src/main/resources/mapper/SysTaskMapper.xml delete mode 100644 sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskJD.java create mode 100644 sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskTao.java diff --git a/sys-api/src/main/java/com/qihang/sys/api/task/service/IPollableService.java b/core/common/src/main/java/com/qihang/common/task/IPollableService.java similarity index 90% rename from sys-api/src/main/java/com/qihang/sys/api/task/service/IPollableService.java rename to core/common/src/main/java/com/qihang/common/task/IPollableService.java index b23cb867..7d18bdbd 100644 --- a/sys-api/src/main/java/com/qihang/sys/api/task/service/IPollableService.java +++ b/core/common/src/main/java/com/qihang/common/task/IPollableService.java @@ -1,4 +1,4 @@ -package com.qihang.sys.api.task.service; +package com.qihang.common.task; public interface IPollableService { /** diff --git a/sys-api/src/main/java/com/qihang/sys/api/task/core/SchedulingConfiguration.java b/core/common/src/main/java/com/qihang/common/task/SchedulingConfiguration.java similarity index 97% rename from sys-api/src/main/java/com/qihang/sys/api/task/core/SchedulingConfiguration.java rename to core/common/src/main/java/com/qihang/common/task/SchedulingConfiguration.java index 2818cb23..18fa7c77 100644 --- a/sys-api/src/main/java/com/qihang/sys/api/task/core/SchedulingConfiguration.java +++ b/core/common/src/main/java/com/qihang/common/task/SchedulingConfiguration.java @@ -1,6 +1,5 @@ -package com.qihang.sys.api.task.core; +package com.qihang.common.task; -import com.qihang.sys.api.task.service.IPollableService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; diff --git a/jd-api/src/main/java/com/qihang/jd/domain/SysTask.java b/jd-api/src/main/java/com/qihang/jd/domain/SysTask.java new file mode 100644 index 00000000..e81f3369 --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/domain/SysTask.java @@ -0,0 +1,176 @@ +package com.qihang.jd.domain; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * @TableName sys_task + */ +public class SysTask implements Serializable { + /** + * + */ + private Integer id; + + /** + * + */ + private String taskName; + + /** + * + */ + private String cron; + + /** + * + */ + private String method; + + /** + * + */ + private String remark; + + /** + * + */ + private Date createTime; + + private static final long serialVersionUID = 1L; + + /** + * + */ + public Integer getId() { + return id; + } + + /** + * + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * + */ + public String getTaskName() { + return taskName; + } + + /** + * + */ + public void setTaskName(String taskName) { + this.taskName = taskName; + } + + /** + * + */ + public String getCron() { + return cron; + } + + /** + * + */ + public void setCron(String cron) { + this.cron = cron; + } + + /** + * + */ + public String getMethod() { + return method; + } + + /** + * + */ + public void setMethod(String method) { + this.method = method; + } + + /** + * + */ + public String getRemark() { + return remark; + } + + /** + * + */ + public void setRemark(String remark) { + this.remark = remark; + } + + /** + * + */ + public Date getCreateTime() { + return createTime; + } + + /** + * + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + SysTask other = (SysTask) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getTaskName() == null ? other.getTaskName() == null : this.getTaskName().equals(other.getTaskName())) + && (this.getCron() == null ? other.getCron() == null : this.getCron().equals(other.getCron())) + && (this.getMethod() == null ? other.getMethod() == null : this.getMethod().equals(other.getMethod())) + && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark())) + && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getTaskName() == null) ? 0 : getTaskName().hashCode()); + result = prime * result + ((getCron() == null) ? 0 : getCron().hashCode()); + result = prime * result + ((getMethod() == null) ? 0 : getMethod().hashCode()); + result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode()); + result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", taskName=").append(taskName); + sb.append(", cron=").append(cron); + sb.append(", method=").append(method); + sb.append(", remark=").append(remark); + sb.append(", createTime=").append(createTime); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/jd-api/src/main/java/com/qihang/jd/mapper/SysTaskMapper.java b/jd-api/src/main/java/com/qihang/jd/mapper/SysTaskMapper.java new file mode 100644 index 00000000..e2e62cd7 --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/mapper/SysTaskMapper.java @@ -0,0 +1,18 @@ +package com.qihang.jd.mapper; + +import com.qihang.jd.domain.SysTask; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【sys_task】的数据库操作Mapper +* @createDate 2024-03-07 10:15:38 +* @Entity com.qihang.jd.domain.SysTask +*/ +public interface SysTaskMapper extends BaseMapper { + +} + + + + diff --git a/jd-api/src/main/java/com/qihang/jd/service/SysTaskService.java b/jd-api/src/main/java/com/qihang/jd/service/SysTaskService.java new file mode 100644 index 00000000..7e386cef --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/service/SysTaskService.java @@ -0,0 +1,13 @@ +package com.qihang.jd.service; + +import com.qihang.jd.domain.SysTask; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【sys_task】的数据库操作Service +* @createDate 2024-03-07 10:15:38 +*/ +public interface SysTaskService extends IService { + +} diff --git a/jd-api/src/main/java/com/qihang/jd/service/impl/SysTaskServiceImpl.java b/jd-api/src/main/java/com/qihang/jd/service/impl/SysTaskServiceImpl.java new file mode 100644 index 00000000..0a780a0b --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/service/impl/SysTaskServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.jd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.jd.domain.SysTask; +import com.qihang.jd.service.SysTaskService; +import com.qihang.jd.mapper.SysTaskMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【sys_task】的数据库操作Service实现 +* @createDate 2024-03-07 10:15:38 +*/ +@Service +public class SysTaskServiceImpl extends ServiceImpl + implements SysTaskService{ + +} + + + + diff --git a/jd-api/src/main/java/com/qihang/jd/task/CronTaskLoader.java b/jd-api/src/main/java/com/qihang/jd/task/CronTaskLoader.java new file mode 100644 index 00000000..d15f7923 --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/task/CronTaskLoader.java @@ -0,0 +1,44 @@ +package com.qihang.jd.task; + +import com.qihang.common.task.SchedulingConfiguration; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.concurrent.atomic.AtomicBoolean; + +@Component +public class CronTaskLoader implements ApplicationRunner { +// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class); + private final SchedulingConfiguration schedulingConfiguration; + private final AtomicBoolean appStarted = new AtomicBoolean(false); + private final AtomicBoolean initializing = new AtomicBoolean(false); + + public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) { + this.schedulingConfiguration = schedulingConfiguration; + } + + /** + * 定时任务配置刷新(1分钟刷新一次) + */ + @Scheduled(fixedDelay = 600000) + public void cronTaskConfigRefresh() { + if (appStarted.get() && initializing.compareAndSet(false, true)) { +// log.info("定时调度任务动态加载开始>>>>>>"); + try { + schedulingConfiguration.refresh(); + } finally { + initializing.set(false); + } +// log.info("定时调度任务动态加载结束<<<<<<"); + } + } + + @Override + public void run(ApplicationArguments args) { + if (appStarted.compareAndSet(false, true)) { + cronTaskConfigRefresh(); + } + } +} \ No newline at end of file diff --git a/jd-api/src/main/java/com/qihang/jd/task/OrderTask.java b/jd-api/src/main/java/com/qihang/jd/task/OrderTask.java new file mode 100644 index 00000000..82151f99 --- /dev/null +++ b/jd-api/src/main/java/com/qihang/jd/task/OrderTask.java @@ -0,0 +1,26 @@ +package com.qihang.jd.task; + +import com.qihang.common.task.IPollableService; +import com.qihang.jd.domain.SysTask; +import com.qihang.jd.service.SysTaskService; + +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@AllArgsConstructor +@Service +public class OrderTask implements IPollableService { + + private final SysTaskService taskService; + @Override + public void poll() { + System.out.printf("更新JD订单%s","echo"); + } + + @Override + public String getCronExpression() { + SysTask task = taskService.getById(1); +// return "0/1 * * * * ?"; + return task.getCron(); + } +} \ No newline at end of file diff --git a/jd-api/src/main/resources/mapper/SysTaskMapper.xml b/jd-api/src/main/resources/mapper/SysTaskMapper.xml new file mode 100644 index 00000000..68633b80 --- /dev/null +++ b/jd-api/src/main/resources/mapper/SysTaskMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + id,task_name,cron, + method,remark,create_time + + diff --git a/sys-api/src/main/java/com/qihang/sys/api/controller/HomeController.java b/sys-api/src/main/java/com/qihang/sys/api/controller/HomeController.java index ed927d30..99d80661 100644 --- a/sys-api/src/main/java/com/qihang/sys/api/controller/HomeController.java +++ b/sys-api/src/main/java/com/qihang/sys/api/controller/HomeController.java @@ -26,7 +26,9 @@ public class HomeController { } @GetMapping(value = "/echo-feign") public String feign() { - return echoService.echo(); + String token = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjdkOTBmN2EzLWUwNWQtNDkxNy04NjIzLTU1OGRhNGY3NjE3NiJ9._Oukm9b0P1WvcOywLdhs6_BOt_6mRSF41Q6f4fBm_DGUkPR86Qg1tqyRTM5ouTR2Xz46IRuRAVez8Wcl3NIlwg"; + + return echoService.echo(token); } } diff --git a/sys-api/src/main/java/com/qihang/sys/api/feign/EchoService.java b/sys-api/src/main/java/com/qihang/sys/api/feign/EchoService.java index 31d0e43d..564a138a 100644 --- a/sys-api/src/main/java/com/qihang/sys/api/feign/EchoService.java +++ b/sys-api/src/main/java/com/qihang/sys/api/feign/EchoService.java @@ -2,10 +2,11 @@ package com.qihang.sys.api.feign; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; @FeignClient(name = "tao-api") public interface EchoService { @GetMapping(value = "/test/na") - String echo(); + String echo(@RequestHeader(name = "Authorization",required = true) String Token); } diff --git a/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskJD.java b/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskJD.java deleted file mode 100644 index c7773d99..00000000 --- a/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskJD.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.qihang.sys.api.task; - -import com.qihang.sys.api.domain.SysTask; -import com.qihang.sys.api.feign.EchoService; -import com.qihang.sys.api.service.SysTaskService; -import com.qihang.sys.api.task.service.IPollableService; -import jakarta.annotation.Resource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - - -@Service -public class OrderTaskJD implements IPollableService { - @Autowired - private SysTaskService taskService; - @Resource - private EchoService echoService; - @Override - public void poll() { - String echo = echoService.echo(); - System.out.printf("更新京东订单%s",echo); - } - - @Override - public String getCronExpression() { - SysTask task = taskService.getById(2); -// return "0/1 * * * * ?"; - return task.getCron(); - } -} \ No newline at end of file diff --git a/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskTao.java b/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskTao.java new file mode 100644 index 00000000..51c538aa --- /dev/null +++ b/sys-api/src/main/java/com/qihang/sys/api/task/OrderTaskTao.java @@ -0,0 +1,31 @@ +//package com.qihang.sys.api.task; +// +//import com.qihang.sys.api.domain.SysTask; +//import com.qihang.sys.api.feign.EchoService; +//import com.qihang.sys.api.service.SysTaskService; +//import com.qihang.common.task.IPollableService; +//import jakarta.annotation.Resource; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Service; +// +// +//@Service +//public class OrderTaskTao implements IPollableService { +// @Autowired +// private SysTaskService taskService; +// @Resource +// private EchoService echoService; +// @Override +// public void poll() { +// String token = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjdkOTBmN2EzLWUwNWQtNDkxNy04NjIzLTU1OGRhNGY3NjE3NiJ9._Oukm9b0P1WvcOywLdhs6_BOt_6mRSF41Q6f4fBm_DGUkPR86Qg1tqyRTM5ouTR2Xz46IRuRAVez8Wcl3NIlwg"; +// String echo = echoService.echo(token); +// System.out.printf("更新淘宝订单%s",echo); +// } +// +// @Override +// public String getCronExpression() { +// SysTask task = taskService.getById(1); +//// return "0/1 * * * * ?"; +// return task.getCron(); +// } +//} \ No newline at end of file diff --git a/sys-api/src/main/java/com/qihang/sys/api/task/core/CronTaskLoader.java b/sys-api/src/main/java/com/qihang/sys/api/task/core/CronTaskLoader.java index 381dd52a..d8bd7566 100644 --- a/sys-api/src/main/java/com/qihang/sys/api/task/core/CronTaskLoader.java +++ b/sys-api/src/main/java/com/qihang/sys/api/task/core/CronTaskLoader.java @@ -1,45 +1,44 @@ -package com.qihang.sys.api.task.core; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.util.concurrent.atomic.AtomicBoolean; - -@Component -public class CronTaskLoader implements ApplicationRunner { -// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class); - private final SchedulingConfiguration schedulingConfiguration; - private final AtomicBoolean appStarted = new AtomicBoolean(false); - private final AtomicBoolean initializing = new AtomicBoolean(false); - - public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) { - this.schedulingConfiguration = schedulingConfiguration; - } - - /** - * 定时任务配置刷新(1分钟刷新一次) - */ - @Scheduled(fixedDelay = 600000) - public void cronTaskConfigRefresh() { - if (appStarted.get() && initializing.compareAndSet(false, true)) { -// log.info("定时调度任务动态加载开始>>>>>>"); - try { - schedulingConfiguration.refresh(); - } finally { - initializing.set(false); - } -// log.info("定时调度任务动态加载结束<<<<<<"); - } - } - - @Override - public void run(ApplicationArguments args) { - if (appStarted.compareAndSet(false, true)) { - cronTaskConfigRefresh(); - } - } -} \ No newline at end of file +//package com.qihang.sys.api.task.core; +// +//import com.qihang.common.task.SchedulingConfiguration; +//import org.springframework.boot.ApplicationArguments; +//import org.springframework.boot.ApplicationRunner; +//import org.springframework.scheduling.annotation.Scheduled; +//import org.springframework.stereotype.Component; +// +//import java.util.concurrent.atomic.AtomicBoolean; +// +//@Component +//public class CronTaskLoader implements ApplicationRunner { +//// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class); +// private final SchedulingConfiguration schedulingConfiguration; +// private final AtomicBoolean appStarted = new AtomicBoolean(false); +// private final AtomicBoolean initializing = new AtomicBoolean(false); +// +// public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) { +// this.schedulingConfiguration = schedulingConfiguration; +// } +// +// /** +// * 定时任务配置刷新(1分钟刷新一次) +// */ +// @Scheduled(fixedDelay = 600000) +// public void cronTaskConfigRefresh() { +// if (appStarted.get() && initializing.compareAndSet(false, true)) { +//// log.info("定时调度任务动态加载开始>>>>>>"); +// try { +// schedulingConfiguration.refresh(); +// } finally { +// initializing.set(false); +// } +//// log.info("定时调度任务动态加载结束<<<<<<"); +// } +// } +// +// @Override +// public void run(ApplicationArguments args) { +// if (appStarted.compareAndSet(false, true)) { +// cronTaskConfigRefresh(); +// } +// } +//} \ No newline at end of file