diff --git a/capability/src/main/resources/logback.xml b/capability/src/main/resources/logback.xml index b88ec08f..e6a80844 100644 --- a/capability/src/main/resources/logback.xml +++ b/capability/src/main/resources/logback.xml @@ -20,12 +20,12 @@ - + - ${LOG_HOME}/console.log + ${LOG_HOME}/running.log - ${LOG_HOME}/console.log.%d{yyyy-MM-dd}.%i.log.gz + ${LOG_HOME}/running.log.%d{yyyy-MM-dd}.%i.log.gz 100MB diff --git a/common/src/main/java/com/sdm/common/feign/impl/data/DataScheduleFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/data/DataScheduleFeignClientImpl.java new file mode 100644 index 00000000..f57943fd --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/impl/data/DataScheduleFeignClientImpl.java @@ -0,0 +1,28 @@ +package com.sdm.common.feign.impl.data; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.data.IDataScheduleFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class DataScheduleFeignClientImpl implements IDataScheduleFeignClient { + + @Autowired + private IDataScheduleFeignClient dataScheduleFeignClient; + + @Override + public SdmResponse dataStorageMonitor() { + SdmResponse response; + try { + response = dataScheduleFeignClient.dataStorageMonitor(); + return response; + } catch (Exception e) { + log.error("dataStorageMonitor Exception:{}", e.getMessage()); + return SdmResponse.failed("dataStorageMonitor执行失败:"+e.getMessage()); + } + } + +} diff --git a/common/src/main/java/com/sdm/common/feign/impl/pbs/PbsScheduleFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/pbs/PbsScheduleFeignClientImpl.java new file mode 100644 index 00000000..6b71f446 --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/impl/pbs/PbsScheduleFeignClientImpl.java @@ -0,0 +1,28 @@ +package com.sdm.common.feign.impl.pbs; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.pbs.IPbsScheduleFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class PbsScheduleFeignClientImpl implements IPbsScheduleFeignClient { + + @Autowired + private IPbsScheduleFeignClient pbsScheduleFeignClient; + + @Override + public SdmResponse hpcJobStatusSync() { + SdmResponse response; + try { + response = pbsScheduleFeignClient.hpcJobStatusSync(); + return response; + } catch (Exception e) { + log.error("hpcJobStatusSync Exception:{}", e.getMessage()); + return SdmResponse.failed("Hpc任务状态同步失败:"+e.getMessage()); + } + } + +} diff --git a/common/src/main/java/com/sdm/common/feign/impl/project/ProjectScheduleFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/project/ProjectScheduleFeignClientImpl.java new file mode 100644 index 00000000..84f4fcbd --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/impl/project/ProjectScheduleFeignClientImpl.java @@ -0,0 +1,52 @@ +package com.sdm.common.feign.impl.project; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.project.IProjectScheduleFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ProjectScheduleFeignClientImpl implements IProjectScheduleFeignClient { + + @Autowired + private IProjectScheduleFeignClient projectScheduleFeignClient; + + + @Override + public SdmResponse commitmentDeadlineStatusHandler() { + SdmResponse response; + try { + response = projectScheduleFeignClient.commitmentDeadlineStatusHandler(); + return response; + } catch (Exception e) { + log.error("commitmentDeadlineStatusHandler Exception:{}", e.getMessage()); + return SdmResponse.failed("commitmentDeadlineStatusHandler执行失败:"+e.getMessage()); + } + } + + @Override + public SdmResponse syncException() { + SdmResponse response; + try { + response = projectScheduleFeignClient.syncException(); + return response; + } catch (Exception e) { + log.error("syncException Exception:{}", e.getMessage()); + return SdmResponse.failed("syncException执行失败:"+e.getMessage()); + } + } + + @Override + public SdmResponse lyricTodoListSchedule(Long tenantId, Long userId) { + SdmResponse response; + try { + response = projectScheduleFeignClient.lyricTodoListSchedule(tenantId,userId); + return response; + } catch (Exception e) { + log.error("lyricTodoListSchedule Exception:{}", e.getMessage()); + return SdmResponse.failed("lyricTodoListSchedule执行失败:"+e.getMessage()); + } + } +} diff --git a/common/src/main/java/com/sdm/common/feign/inter/data/IDataScheduleFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/data/IDataScheduleFeignClient.java new file mode 100644 index 00000000..f3001f86 --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/inter/data/IDataScheduleFeignClient.java @@ -0,0 +1,17 @@ +package com.sdm.common.feign.inter.data; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.config.LongTimeRespFeignConfig; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + + +@FeignClient(name = "data",contextId = "dataScheduleFeignClient",configuration = LongTimeRespFeignConfig.class) +public interface IDataScheduleFeignClient { + + // data存储空间监控告警 + @GetMapping("/xxlJob/dataStorageMonitor") + SdmResponse dataStorageMonitor() ; + + +} diff --git a/common/src/main/java/com/sdm/common/feign/inter/pbs/IPbsScheduleFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/pbs/IPbsScheduleFeignClient.java new file mode 100644 index 00000000..ba526cdd --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/inter/pbs/IPbsScheduleFeignClient.java @@ -0,0 +1,17 @@ +package com.sdm.common.feign.inter.pbs; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.config.LongTimeRespFeignConfig; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + + +@FeignClient(name = "pbs",contextId = "pbsScheduleFeignClient",configuration = LongTimeRespFeignConfig.class) +public interface IPbsScheduleFeignClient { + + // HPC作业状态同步 + @GetMapping("/xxlJob/hpcJobStatusSync") + SdmResponse hpcJobStatusSync() ; + + +} diff --git a/common/src/main/java/com/sdm/common/feign/inter/project/IProjectScheduleFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/project/IProjectScheduleFeignClient.java new file mode 100644 index 00000000..c6db4999 --- /dev/null +++ b/common/src/main/java/com/sdm/common/feign/inter/project/IProjectScheduleFeignClient.java @@ -0,0 +1,26 @@ +package com.sdm.common.feign.inter.project; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.config.LongTimeRespFeignConfig; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + + +@FeignClient(name = "project",contextId = "projectScheduleFeignClient",configuration = LongTimeRespFeignConfig.class) +public interface IProjectScheduleFeignClient { + + // 项目是否延期的定时任务 + @GetMapping("/xxlJob/commitmentDeadlineStatusHandler") + SdmResponse commitmentDeadlineStatusHandler(); + + // lyric异常任务信息同步 + @GetMapping("/xxlJob/syncException") + SdmResponse syncException() ; + + // 同步代办定时任务 + @GetMapping("/xxlJob/lyricTodoListSchedule") + SdmResponse lyricTodoListSchedule(@RequestParam(value = "tenantId")Long tenantId, @RequestParam(value = "userId")Long userId) ; + + +} diff --git a/data/pom.xml b/data/pom.xml index 13fc1dad..25b4e11a 100644 --- a/data/pom.xml +++ b/data/pom.xml @@ -46,10 +46,7 @@ org.springframework.boot spring-boot-starter-validation - - org.springframework.boot - spring-boot-starter-web - + org.projectlombok lombok diff --git a/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java b/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java deleted file mode 100644 index 6e66d22b..00000000 --- a/data/src/main/java/com/sdm/data/config/xxljob/XxlJobConfig.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.sdm.data.config.xxljob; - -import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * xxl-job config - * - * @author xuxueli 2017-04-28 - */ -@Configuration -public class XxlJobConfig { - private static final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); - - @Value("${xxl.job.admin.addresses}") - private String adminAddresses; - - @Value("${xxl.job.admin.accessToken}") - private String accessToken; - - @Value("${xxl.job.admin.timeout}") - private int timeout; - - @Value("${xxl.job.executor.enabled}") - private Boolean enabled; - - @Value("${xxl.job.executor.appname}") - private String appname; - - @Value("${xxl.job.executor.address}") - private String address; - - @Value("${xxl.job.executor.ip}") - private String ip; - - @Value("${xxl.job.executor.port}") - private int port; - - @Value("${xxl.job.executor.logpath}") - private String logPath; - - @Value("${xxl.job.executor.logretentiondays}") - private int logRetentionDays; - - @Value("${xxl.job.executor.excludedpackage}") - private String excludedPackage; - - - @Bean - public XxlJobSpringExecutor xxlJobExecutor() { - logger.info(">>>>>>>>>>> xxl-job config init."); - XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); - xxlJobSpringExecutor.setAdminAddresses(adminAddresses); - xxlJobSpringExecutor.setAccessToken(accessToken); - xxlJobSpringExecutor.setTimeout(timeout); - xxlJobSpringExecutor.setEnabled(enabled); - xxlJobSpringExecutor.setAppname(appname); - xxlJobSpringExecutor.setAddress(address); - xxlJobSpringExecutor.setIp(ip); - xxlJobSpringExecutor.setPort(port); - xxlJobSpringExecutor.setLogPath(logPath); - xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); - xxlJobSpringExecutor.setExcludedPackage(excludedPackage); - - return xxlJobSpringExecutor; - } - - /** - * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP; - * - * 1、引入依赖: - * - * org.springframework.cloud - * spring-cloud-commons - * ${version} - * - * - * 2、配置文件,或者容器启动变量 - * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.' - * - * 3、获取IP - * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); - */ - - -} \ No newline at end of file diff --git a/data/src/main/java/com/sdm/data/controller/ScheduleController.java b/data/src/main/java/com/sdm/data/controller/ScheduleController.java new file mode 100644 index 00000000..a2f883fe --- /dev/null +++ b/data/src/main/java/com/sdm/data/controller/ScheduleController.java @@ -0,0 +1,30 @@ +package com.sdm.data.controller; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.data.IDataScheduleFeignClient; +import com.sdm.data.schedule.DataStorageMonitorScheduleExcutor; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequestMapping("/xxlJob") +@Tag(name = "定时任务调度", description = "定时任务调度") +public class ScheduleController implements IDataScheduleFeignClient { + + @Autowired + private DataStorageMonitorScheduleExcutor dataStorageMonitorScheduleService; + + @GetMapping("/dataStorageMonitor") + @Operation(summary = "data存储空间监控告警") + public SdmResponse dataStorageMonitor() { + dataStorageMonitorScheduleService.run(); + return SdmResponse.success("ok"); + } + +} diff --git a/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java index a2cfbb25..71706c22 100644 --- a/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java +++ b/data/src/main/java/com/sdm/data/schedule/DataStorageMonitorSchedule.java @@ -1,28 +1,28 @@ -package com.sdm.data.schedule; - -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -@Slf4j -@RequiredArgsConstructor -public class DataStorageMonitorSchedule { - - @Autowired - private DataStorageMonitorScheduleExcutor dataStorageMonitorScheduleService; - - /** - * 定时筛选存储空间达到阈值的用户 发送告警消息 - */ - @XxlJob("dataStorageMonitorHandler") - public void checkDataStorageSpaceAndSendAlert() throws Exception { - log.info("开始执行定时筛选存储空间达到阈值的用户任务"); - // 业务逻辑方法调度 - dataStorageMonitorScheduleService.run(); - log.info("定时筛选存储空间达到阈值的用户任务执行完成"); - } - -} +//package com.sdm.data.schedule; +// +//import com.xxl.job.core.handler.annotation.XxlJob; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//@Component +//@Slf4j +//@RequiredArgsConstructor +//public class DataStorageMonitorSchedule { +// +// @Autowired +// private DataStorageMonitorScheduleExcutor dataStorageMonitorScheduleService; +// +// /** +// * 定时筛选存储空间达到阈值的用户 发送告警消息 +// */ +// @XxlJob("dataStorageMonitorHandler") +// public void checkDataStorageSpaceAndSendAlert() throws Exception { +// log.info("开始执行定时筛选存储空间达到阈值的用户任务"); +// // 业务逻辑方法调度 +// dataStorageMonitorScheduleService.run(); +// log.info("定时筛选存储空间达到阈值的用户任务执行完成"); +// } +// +//} diff --git a/data/src/main/resources/application-dev-100.yml b/data/src/main/resources/application-dev-100.yml index ac19dc1b..6c376349 100644 --- a/data/src/main/resources/application-dev-100.yml +++ b/data/src/main/resources/application-dev-100.yml @@ -136,40 +136,10 @@ security: - /data/approveParamLibrary - /ws/data/modelTraining - /data/batchUpdatePermission + - /xxlJob/* data: storage-monitor: cron: 0 0 0/1 * * ? - -# xxljob 配置开始 -# xxl-job admin address list, such as "http://address" or "http://address01,http://address02" -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.100:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: data-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8104 - # 执行器日志路径 - logpath: /home/app/data/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - tempNgUrl: http://192.168.100.161:10031/storage/ \ No newline at end of file diff --git a/data/src/main/resources/application-dev-190.yml b/data/src/main/resources/application-dev-190.yml index 6a5e6985..77cb752d 100644 --- a/data/src/main/resources/application-dev-190.yml +++ b/data/src/main/resources/application-dev-190.yml @@ -136,40 +136,10 @@ security: - /data/approveParamLibrary - /ws/data/modelTraining - /data/batchUpdatePermission + - /xxlJob/* data: storage-monitor: cron: 0 0 0/1 * * ? - -# xxljob 配置开始 -# xxl-job admin address list, such as "http://address" or "http://address01,http://address02" -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: data-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8104 - # 执行器日志路径 - logpath: /home/app/data/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - tempNgUrl: http://192.168.190.161:10031/storage/ \ No newline at end of file diff --git a/data/src/main/resources/application-local.yml b/data/src/main/resources/application-local.yml index f04f9353..c6f928fa 100644 --- a/data/src/main/resources/application-local.yml +++ b/data/src/main/resources/application-local.yml @@ -140,6 +140,7 @@ security: - /data/createDir - /data/approveParamLibrary - /ws/data/modelTraining + - /xxlJob/* data: storage-monitor: @@ -150,34 +151,4 @@ serverType: 0 #serverIp: 192.168.65.161 serverIp: 192.168.65.73 -# xxljob 配置开始 -# xxl-job admin address list, such as "http://address" or "http://address01,http://address02" -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://127.0.0.1:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: data-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8104 - # 执行器日志路径 - logpath: D:\home\app\pbs\xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - tempNgUrl: http://localhost:10031/storage/ \ No newline at end of file diff --git a/data/src/main/resources/application-lyric.yml b/data/src/main/resources/application-lyric.yml index 76c847a3..f463d02a 100644 --- a/data/src/main/resources/application-lyric.yml +++ b/data/src/main/resources/application-lyric.yml @@ -136,39 +136,10 @@ security: - /data/approveParamLibrary - /ws/data/modelTraining - /data/batchUpdatePermission + - /xxlJob/* data: storage-monitor: cron: 0 0 0/1 * * ? -# xxljob 配置开始 -# xxl-job admin address list, such as "http://address" or "http://address01,http://address02" -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.30.148:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: data-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8104 - # 执行器日志路径 - logpath: /home/app/data/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - tempNgUrl: http://192.168.30.147:10031/storage/ \ No newline at end of file diff --git a/job/pom.xml b/job/pom.xml new file mode 100644 index 00000000..1ead15a1 --- /dev/null +++ b/job/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.sdm + SDM + 1.0-SNAPSHOT + + job + 0.0.1-SNAPSHOT + job + job + + 17 + UTF-8 + UTF-8 + 3.3.5 + + + + + com.sdm + common + 0.0.1-SNAPSHOT + + + * + * + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + org.apache.commons + commons-lang3 + 3.14.0 + + + + com.xuxueli + xxl-job-core + 3.3.2 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + true + + + + + + \ No newline at end of file diff --git a/job/src/main/java/com/sdm/job/JobApplication.java b/job/src/main/java/com/sdm/job/JobApplication.java new file mode 100644 index 00000000..2184ff62 --- /dev/null +++ b/job/src/main/java/com/sdm/job/JobApplication.java @@ -0,0 +1,29 @@ +package com.sdm.job; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.FilterType; +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication(scanBasePackages = {"com.sdm.job","com.sdm.common"}) +@EnableDiscoveryClient +@EnableScheduling +@EnableFeignClients(basePackages = "com.sdm.common.feign") +@ComponentScan( + excludeFilters = { + @ComponentScan.Filter( + type = FilterType.ASSIGNABLE_TYPE, + classes = com.sdm.common.aspect.DictTagsAutoFillAspect.class + ) + } +) +public class JobApplication { + + public static void main(String[] args) { + SpringApplication.run(JobApplication.class, args); + } + +} diff --git a/pbs/src/main/java/com/sdm/pbs/config/xxljob/XxlJobConfig.java b/job/src/main/java/com/sdm/job/config/XxlJobConfig.java similarity index 96% rename from pbs/src/main/java/com/sdm/pbs/config/xxljob/XxlJobConfig.java rename to job/src/main/java/com/sdm/job/config/XxlJobConfig.java index 973a24ae..bfeab076 100644 --- a/pbs/src/main/java/com/sdm/pbs/config/xxljob/XxlJobConfig.java +++ b/job/src/main/java/com/sdm/job/config/XxlJobConfig.java @@ -1,4 +1,4 @@ -package com.sdm.pbs.config.xxljob; +package com.sdm.job.config; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.slf4j.Logger; @@ -7,11 +7,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -/** - * xxl-job config - * - * @author xuxueli 2017-04-28 - */ @Configuration public class XxlJobConfig { private static final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); diff --git a/job/src/main/java/com/sdm/job/schedule/DataSchedule.java b/job/src/main/java/com/sdm/job/schedule/DataSchedule.java new file mode 100644 index 00000000..4d75c75c --- /dev/null +++ b/job/src/main/java/com/sdm/job/schedule/DataSchedule.java @@ -0,0 +1,31 @@ +package com.sdm.job.schedule; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.data.IDataScheduleFeignClient; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +// 后期多节点部署,优化成分布式定时任务 +@Component +@Slf4j +public class DataSchedule { + + @Autowired + private IDataScheduleFeignClient dataScheduleFeignClient; + + /** + * 定时筛选存储空间达到阈值的用户 发送告警消息 + */ + @XxlJob("dataStorageMonitorHandler") + public void checkDataStorageSpaceAndSendAlert() throws Exception { + log.info("开始执行定时筛选存储空间达到阈值的用户任务"); + // 业务逻辑方法调度 + SdmResponse response = dataScheduleFeignClient.dataStorageMonitor(); + log.info("定时筛选存储空间达到阈值的用户任务执行完成"); + } + + + +} diff --git a/job/src/main/java/com/sdm/job/schedule/PbsSchedule.java b/job/src/main/java/com/sdm/job/schedule/PbsSchedule.java new file mode 100644 index 00000000..1b53ab37 --- /dev/null +++ b/job/src/main/java/com/sdm/job/schedule/PbsSchedule.java @@ -0,0 +1,30 @@ +package com.sdm.job.schedule; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.pbs.IPbsScheduleFeignClient; +import com.sdm.common.utils.MdcUtil; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +// 后期多节点部署,优化成分布式定时任务 +@Component +public class PbsSchedule { + + @Autowired + private IPbsScheduleFeignClient pbsScheduleFeignClient; + + // xxljob平台配置定时任务 + @XxlJob("hpcJobStatusHandler") + public void hpcJobStatusHandler() throws Exception { + String traceId = MdcUtil.generateAndPutTraceId(); + XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新开始traceId:{}",traceId); + SdmResponse response = pbsScheduleFeignClient.hpcJobStatusSync(); + XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新结束traceId:{}",traceId); + MdcUtil.removeTraceId(); + } + + + +} diff --git a/job/src/main/java/com/sdm/job/schedule/ProjectSchedule.java b/job/src/main/java/com/sdm/job/schedule/ProjectSchedule.java new file mode 100644 index 00000000..962fe082 --- /dev/null +++ b/job/src/main/java/com/sdm/job/schedule/ProjectSchedule.java @@ -0,0 +1,72 @@ +package com.sdm.job.schedule; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.project.IProjectScheduleFeignClient; +import com.sdm.common.utils.MdcUtil; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +// 后期多节点部署,优化成分布式定时任务 +@Component +@Slf4j +public class ProjectSchedule { + + @Autowired + private IProjectScheduleFeignClient projectScheduleFeignClient; + + // xxljob平台配置定时任务 + @XxlJob("commitmentDeadlineStatusHandler") + public void commitmentDeadlineStatusHandler() throws Exception { + String traceId = MdcUtil.generateAndPutTraceId(); + XxlJobHelper.log("XXL-JOB:拉起commitmentDeadlineStatusHandler任务新开始traceId:{}",traceId); + SdmResponse response = projectScheduleFeignClient.commitmentDeadlineStatusHandler(); + XxlJobHelper.log("XXL-JOB:拉起commitmentDeadlineStatusHandler任务结束traceId:{}",traceId); + MdcUtil.removeTraceId(); + } + + @XxlJob("lyricEncExceptionHandler") + public void lyricEncExceptionHandler() throws Exception { + // 初始化traceId + String traceId = MdcUtil.generateAndPutTraceId(); + XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息开始,param:{}", traceId); + long startTime = System.currentTimeMillis(); + SdmResponse response = projectScheduleFeignClient.syncException(); + long endTime = System.currentTimeMillis(); + long second = (endTime - startTime) / 1000; + log.info("{} lyricEncExceptionHandler cost [{}] s", traceId,second); + log.info("{} lyricEncExceptionHandler result :{}", traceId, JSON.toJSONString(response)); + XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); + // 销毁 + MdcUtil.removeTraceId(); + } + + // xxljob平台配置定时任务 + @XxlJob("lyricTodoListHandler") + public void lyricTodoListHandler() throws Exception { + // 初始化traceId + String traceId = MdcUtil.generateAndPutTraceId(); + String param = XxlJobHelper.getJobParam(); + if(StringUtils.isBlank(param)){ + log.warn("{} lyricTodoListHandler param null",traceId); + return; + } + XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务开始,param:{}", traceId,param); + JSONObject paramJson = JSONObject.parseObject(param); + long startTime = System.currentTimeMillis(); + SdmResponse response = projectScheduleFeignClient.lyricTodoListSchedule(paramJson.getLong("tenantId"), paramJson.getLong("userId")); + long endTime = System.currentTimeMillis(); + long second = (endTime - startTime) / 1000; + log.info("{} lyricTodoListHandler cost [{}] s", traceId,second); + log.info("{} lyricTodoListHandler result :{}", traceId,JSON.toJSONString(response)); + XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); + // 销毁 + MdcUtil.removeTraceId(); + } + +} diff --git a/job/src/main/resources/application-dev-100.yml b/job/src/main/resources/application-dev-100.yml new file mode 100644 index 00000000..ae0cefb4 --- /dev/null +++ b/job/src/main/resources/application-dev-100.yml @@ -0,0 +1,72 @@ +server: + port: 7108 + tomcat: + # 等待客户端发送数据的超时(毫秒) + connection-timeout: 60000 + # Keep-Alive 长连接保持时间(毫秒) + keep-alive-timeout: 30000 + # 异步超时(根据业务需要) + async-timeout: -1 + +spring: + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + + application: + name: job + # 关闭 Spring 的 “内存缓冲” + codec: + max-in-memory-size: -1 + mvc: + async: + request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!) + cloud: + nacos: + discovery: + server-addr: 192.168.190.100:5848 + group: DEV_GROUP + enabled: true +management: + endpoints: + web: + exposure: + include: health,info + endpoint: + health: + show-details: always + +lombok: + anyConstructor: + addConstructorProperties: true + + +# xxljob 配置开始 +xxl: + job: + admin: + # 调度中心地址列表 + addresses: http://192.168.190.100:7110/xxl-job-admin + # 调度中心访问令牌 + accessToken: default_token + # xxl-job 超时时间(秒),默认3秒 + timeout: 3 + executor: + # 执行器是否启用,默认true + enabled: true + # 执行器应用名称 + appname: spdm-job-executor + # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 + address: + # 执行器IP + ip: ${XXL_JOB_EXECUTOR_IP:} + # 执行器端口,为了好记,web服务端口+1000 + port: 8108 + # 执行器日志路径 + logpath: /home/app/pbs/xxljob + # 执行器日志保留天数 + logretentiondays: 14 + # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" + excludedpackage: +# xxljob 配置结束 \ No newline at end of file diff --git a/job/src/main/resources/application-dev-190.yml b/job/src/main/resources/application-dev-190.yml new file mode 100644 index 00000000..0e619611 --- /dev/null +++ b/job/src/main/resources/application-dev-190.yml @@ -0,0 +1,72 @@ +server: + port: 7108 + tomcat: + # 等待客户端发送数据的超时(毫秒) + connection-timeout: 60000 + # Keep-Alive 长连接保持时间(毫秒) + keep-alive-timeout: 30000 + # 异步超时(根据业务需要) + async-timeout: -1 + +spring: + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + + application: + name: job + # 关闭 Spring 的 “内存缓冲” + codec: + max-in-memory-size: -1 + mvc: + async: + request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!) + cloud: + nacos: + discovery: + server-addr: 192.168.190.161:8848 + group: DEV_GROUP + enabled: true +management: + endpoints: + web: + exposure: + include: health,info + endpoint: + health: + show-details: always + +lombok: + anyConstructor: + addConstructorProperties: true + + +# xxljob 配置开始 +xxl: + job: + admin: + # 调度中心地址列表 + addresses: http://192.168.190.161:7110/xxl-job-admin + # 调度中心访问令牌 + accessToken: default_token + # xxl-job 超时时间(秒),默认3秒 + timeout: 3 + executor: + # 执行器是否启用,默认true + enabled: true + # 执行器应用名称 + appname: spdm-job-executor + # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 + address: + # 执行器IP + ip: ${XXL_JOB_EXECUTOR_IP:} + # 执行器端口,为了好记,web服务端口+1000 + port: 8108 + # 执行器日志路径 + logpath: /home/app/pbs/xxljob + # 执行器日志保留天数 + logretentiondays: 14 + # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" + excludedpackage: +# xxljob 配置结束 \ No newline at end of file diff --git a/job/src/main/resources/application-dev-65.yml b/job/src/main/resources/application-dev-65.yml new file mode 100644 index 00000000..11ef11dc --- /dev/null +++ b/job/src/main/resources/application-dev-65.yml @@ -0,0 +1,72 @@ +server: + port: 7108 + tomcat: + # 等待客户端发送数据的超时(毫秒) + connection-timeout: 60000 + # Keep-Alive 长连接保持时间(毫秒) + keep-alive-timeout: 30000 + # 异步超时(根据业务需要) + async-timeout: -1 + +spring: + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + + application: + name: job +# 关闭 Spring 的 “内存缓冲” + codec: + max-in-memory-size: -1 + mvc: + async: + request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!) + cloud: + nacos: + discovery: + server-addr: 192.168.65.161:8848 + group: DEV_GROUP + enabled: true +management: + endpoints: + web: + exposure: + include: health,info + endpoint: + health: + show-details: always + +lombok: + anyConstructor: + addConstructorProperties: true + + +# xxljob 配置开始 +xxl: + job: + admin: + # 调度中心地址列表 + addresses: http://192.168.65.161:7110/xxl-job-admin + # 调度中心访问令牌 + accessToken: default_token + # xxl-job 超时时间(秒),默认3秒 + timeout: 3 + executor: + # 执行器是否启用,默认true + enabled: true + # 执行器应用名称 + appname: spdm-job-executor + # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 + address: + # 执行器IP + ip: ${XXL_JOB_EXECUTOR_IP:} + # 执行器端口,为了好记,web服务端口+1000 + port: 8108 + # 执行器日志路径 + logpath: /home/app/pbs/xxljob + # 执行器日志保留天数 + logretentiondays: 14 + # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" + excludedpackage: +# xxljob 配置结束 \ No newline at end of file diff --git a/job/src/main/resources/application-local.yml b/job/src/main/resources/application-local.yml new file mode 100644 index 00000000..5687438b --- /dev/null +++ b/job/src/main/resources/application-local.yml @@ -0,0 +1,72 @@ +server: + port: 7108 + tomcat: + # 等待客户端发送数据的超时(毫秒) + connection-timeout: 60000 + # Keep-Alive 长连接保持时间(毫秒) + keep-alive-timeout: 30000 + # 异步超时(根据业务需要) + async-timeout: -1 + +spring: + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + + application: + name: job + # 关闭 Spring 的 “内存缓冲” + codec: + max-in-memory-size: -1 + mvc: + async: + request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!) + cloud: + nacos: + discovery: + server-addr: 192.168.2.166:8848 + group: DEV_GROUP + enabled: true +management: + endpoints: + web: + exposure: + include: health,info + endpoint: + health: + show-details: always + +lombok: + anyConstructor: + addConstructorProperties: true + + +# xxljob 配置开始 +xxl: + job: + admin: + # 调度中心地址列表 + addresses: http://127.0.0.1:7110/xxl-job-admin + # 调度中心访问令牌 + accessToken: default_token + # xxl-job 超时时间(秒),默认3秒 + timeout: 3 + executor: + # 执行器是否启用,默认true + enabled: true + # 执行器应用名称 + appname: spdm-job-executor + # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 + address: + # 执行器IP + ip: ${XXL_JOB_EXECUTOR_IP:} + # 执行器端口,为了好记,web服务端口+1000 + port: 8108 + # 执行器日志路径 + logpath: /home/app/pbs/xxljob + # 执行器日志保留天数 + logretentiondays: 14 + # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" + excludedpackage: +# xxljob 配置结束 \ No newline at end of file diff --git a/job/src/main/resources/application-lyric.yml b/job/src/main/resources/application-lyric.yml new file mode 100644 index 00000000..0485917a --- /dev/null +++ b/job/src/main/resources/application-lyric.yml @@ -0,0 +1,72 @@ +server: + port: 7108 + tomcat: + # 等待客户端发送数据的超时(毫秒) + connection-timeout: 60000 + # Keep-Alive 长连接保持时间(毫秒) + keep-alive-timeout: 30000 + # 异步超时(根据业务需要) + async-timeout: -1 + +spring: + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + + application: + name: job + # 关闭 Spring 的 “内存缓冲” + codec: + max-in-memory-size: -1 + mvc: + async: + request-timeout: -1 # 🔥 关闭 Spring 异步超时(关键!) + cloud: + nacos: + discovery: + server-addr: 192.168.30.146:8848 + group: DEV_GROUP + enabled: true +management: + endpoints: + web: + exposure: + include: health,info + endpoint: + health: + show-details: always + +lombok: + anyConstructor: + addConstructorProperties: true + + +# xxljob 配置开始 +xxl: + job: + admin: + # 调度中心地址列表 + addresses: http://192.168.30.148:7110/xxl-job-admin + # 调度中心访问令牌 + accessToken: default_token + # xxl-job 超时时间(秒),默认3秒 + timeout: 3 + executor: + # 执行器是否启用,默认true + enabled: true + # 执行器应用名称 + appname: spdm-job-executor + # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 + address: + # 执行器IP + ip: ${XXL_JOB_EXECUTOR_IP:} + # 执行器端口,为了好记,web服务端口+1000 + port: 8108 + # 执行器日志路径 + logpath: /home/app/pbs/xxljob + # 执行器日志保留天数 + logretentiondays: 14 + # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" + excludedpackage: +# xxljob 配置结束 \ No newline at end of file diff --git a/job/src/main/resources/application.yml b/job/src/main/resources/application.yml new file mode 100644 index 00000000..db31fe52 --- /dev/null +++ b/job/src/main/resources/application.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: dev-65 \ No newline at end of file diff --git a/job/src/main/resources/bin/65/log.sh b/job/src/main/resources/bin/65/log.sh new file mode 100644 index 00000000..a8428f5d --- /dev/null +++ b/job/src/main/resources/bin/65/log.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# Spring Boot 项目日志查看脚本 +LOG_HOME="/home/app/job/logs" +LOG_FILE="${LOG_HOME}/running.log" + + +# 查看实时日志 +if [ ! -f "${LOG_FILE}" ]; then + echo "日志文件不存在:${LOG_FILE}(可能项目未启动)" + exit 1 +fi +echo "正在查看实时运行日志(按 Ctrl+C 退出)... 日志路径:${LOG_FILE}" +tail -f "${LOG_FILE}" diff --git a/job/src/main/resources/bin/65/start.sh b/job/src/main/resources/bin/65/start.sh new file mode 100644 index 00000000..7c231640 --- /dev/null +++ b/job/src/main/resources/bin/65/start.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Spring Boot 项目启动脚本 +JAR_PATH="/home/app/job" +JAR_NAME="job-0.0.1-SNAPSHOT.jar" +FULL_JAR_PATH="${JAR_PATH}/${JAR_NAME}" + +# 与logback.xml保持一致的日志路径 +LOG_HOME="/home/app/job/logs" +LOG_FILE="${LOG_HOME}/running.log" + +# JVM参数 +JVM_OPTS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_HOME}/heapdump.hprof" + +# 函数定义 +check_jar_exists() { + if [ ! -f "${FULL_JAR_PATH}" ]; then + echo "ERROR: Jar包不存在!路径:${FULL_JAR_PATH}" + exit 1 + fi +} + +get_running_pid() { + ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}' +} + +# 检查是否已运行 +PID=$(get_running_pid) +if [ -n "${PID}" ]; then + echo "项目已在运行中!PID: ${PID}" + exit 0 +fi + +# 检查Jar包是否存在 +check_jar_exists + +# 确保日志目录存在 +if [ ! -d "${LOG_HOME}" ]; then + mkdir -p "${LOG_HOME}" + echo "日志目录不存在,已自动创建:${LOG_HOME}" +fi + + +# 启动项目 +echo "正在启动项目..." +nohup java ${JVM_OPTS} -Dspring.profiles.active=dev-65 -DXXL_JOB_EXECUTOR_IP=192.168.65.161 -Dspdm.enkey=XzKRqYnUypdE8VJ41yo/i0rMpZ0IlztSZ1PqWhr0q/c= -jar "${FULL_JAR_PATH}" > "${LOG_FILE}" 2>&1 & diff --git a/job/src/main/resources/logback.xml b/job/src/main/resources/logback.xml new file mode 100644 index 00000000..e85a5bf2 --- /dev/null +++ b/job/src/main/resources/logback.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + ${LOG_HOME}/running.log + + ${LOG_HOME}/running.log.%d{yyyy-MM-dd}.%i.log.gz + 100MB + 15 + 3GB + true + + + ${FILE_LOG_PATTERN} + + + + + + ${LOG_HOME}/core.log + + ${LOG_HOME}/core.log.%d{yyyy-MM-dd}.%i.log.gz + 100MB + 15 + 2GB + + + [%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%15.15t] %X{callerInfo} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + + + INFO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pbs/pom.xml b/pbs/pom.xml index bd84be5a..0b47e8d3 100644 --- a/pbs/pom.xml +++ b/pbs/pom.xml @@ -60,10 +60,6 @@ org.springframework.boot spring-boot-starter-validation - - org.springframework.boot - spring-boot-starter-web - commons-net diff --git a/pbs/src/main/java/com/sdm/pbs/controller/ScheduleController.java b/pbs/src/main/java/com/sdm/pbs/controller/ScheduleController.java new file mode 100644 index 00000000..0e527024 --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/controller/ScheduleController.java @@ -0,0 +1,30 @@ +package com.sdm.pbs.controller; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.pbs.IPbsScheduleFeignClient; +import com.sdm.pbs.schedule.hpc.HpcJobStatusScheduleExcutor; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequestMapping("/xxlJob") +@Tag(name = "定时任务调度", description = "定时任务调度") +public class ScheduleController implements IPbsScheduleFeignClient { + + @Autowired + private HpcJobStatusScheduleExcutor hpcJobStatusScheduleService; + + @GetMapping("/hpcJobStatusSync") + @Operation(summary = "HPC作业状态同步") + public SdmResponse hpcJobStatusSync() { + hpcJobStatusScheduleService.run(); + return SdmResponse.success("ok"); + } + +} diff --git a/pbs/src/main/java/com/sdm/pbs/schedule/hpc/HpcJobStatusSchedule.java b/pbs/src/main/java/com/sdm/pbs/schedule/hpc/HpcJobStatusSchedule.java index 2a18f0dd..58431232 100644 --- a/pbs/src/main/java/com/sdm/pbs/schedule/hpc/HpcJobStatusSchedule.java +++ b/pbs/src/main/java/com/sdm/pbs/schedule/hpc/HpcJobStatusSchedule.java @@ -1,66 +1,66 @@ -package com.sdm.pbs.schedule.hpc; - -import com.sdm.common.utils.MdcUtil; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -// 后期多节点部署,优化成分布式定时任务 -@Component -public class HpcJobStatusSchedule { - -// @Value("${task.schedule.interval:120}") -// private long interval; +//package com.sdm.pbs.schedule.hpc; // -// @Value("${task.schedule.poolSize:1}") -// private int poolSize; +//import com.sdm.common.utils.MdcUtil; +//import com.xxl.job.core.context.XxlJobHelper; +//import com.xxl.job.core.handler.annotation.XxlJob; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; // -// private ScheduledExecutorService scheduler; - - @Autowired - private HpcJobStatusScheduleExcutor hpcJobStatusScheduleService; - - // xxljob平台配置定时任务 - @XxlJob("hpcJobStatusHandler") - public void hpcJobStatusHandler() throws Exception { - String traceId = MdcUtil.generateAndPutTraceId(); - XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新开始traceId:{}",traceId); - hpcJobStatusScheduleService.run(); - XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新结束traceId:{}",traceId); - MdcUtil.removeTraceId(); - } - - -// /** -// * 初始化定时任务:直接提交Service作为任务 -// */ -// @PostConstruct -// public void initScheduledTask() { -// scheduler = Executors.newScheduledThreadPool(poolSize); -// scheduler.scheduleWithFixedDelay( -// hpcJobStatusScheduleService, -// 0, -// interval, -// TimeUnit.SECONDS -// ); -// } - -// /** -// * 销毁线程池 -// */ -// @PreDestroy -// public void destroy() { -// if (scheduler != null) { -// scheduler.shutdown(); -// try { -// if (!scheduler.awaitTermination(1, TimeUnit.MINUTES)) { -// scheduler.shutdownNow(); -// } -// } catch (InterruptedException e) { -// scheduler.shutdownNow(); -// } -// } -// } - -} +//// 后期多节点部署,优化成分布式定时任务 +//@Component +//public class HpcJobStatusSchedule { +// +//// @Value("${task.schedule.interval:120}") +//// private long interval; +//// +//// @Value("${task.schedule.poolSize:1}") +//// private int poolSize; +//// +//// private ScheduledExecutorService scheduler; +// +// @Autowired +// private HpcJobStatusScheduleExcutor hpcJobStatusScheduleService; +// +// // xxljob平台配置定时任务 +//// @XxlJob("hpcJobStatusHandler") +//// public void hpcJobStatusHandler() throws Exception { +//// String traceId = MdcUtil.generateAndPutTraceId(); +//// XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新开始traceId:{}",traceId); +//// hpcJobStatusScheduleService.run(); +//// XxlJobHelper.log("XXL-JOB:拉起Hpc任务更新结束traceId:{}",traceId); +//// MdcUtil.removeTraceId(); +//// } +// +// +//// /** +//// * 初始化定时任务:直接提交Service作为任务 +//// */ +//// @PostConstruct +//// public void initScheduledTask() { +//// scheduler = Executors.newScheduledThreadPool(poolSize); +//// scheduler.scheduleWithFixedDelay( +//// hpcJobStatusScheduleService, +//// 0, +//// interval, +//// TimeUnit.SECONDS +//// ); +//// } +// +//// /** +//// * 销毁线程池 +//// */ +//// @PreDestroy +//// public void destroy() { +//// if (scheduler != null) { +//// scheduler.shutdown(); +//// try { +//// if (!scheduler.awaitTermination(1, TimeUnit.MINUTES)) { +//// scheduler.shutdownNow(); +//// } +//// } catch (InterruptedException e) { +//// scheduler.shutdownNow(); +//// } +//// } +//// } +// +//} diff --git a/pbs/src/main/resources/application-dev-100.yml b/pbs/src/main/resources/application-dev-100.yml index 3975a808..caf7433c 100644 --- a/pbs/src/main/resources/application-dev-100.yml +++ b/pbs/src/main/resources/application-dev-100.yml @@ -160,32 +160,4 @@ security: - /pbs/netTest - /pbs/adapterSubmitHpcJob - /pbs/mockHpcDownloadFile - -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.100:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 - appname: pbs-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8105 - # 执行器日志路径 - logpath: /home/app/pbs/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 \ No newline at end of file + - /xxlJob/* diff --git a/pbs/src/main/resources/application-dev-190.yml b/pbs/src/main/resources/application-dev-190.yml index e9bb9b2f..492f2a53 100644 --- a/pbs/src/main/resources/application-dev-190.yml +++ b/pbs/src/main/resources/application-dev-190.yml @@ -156,36 +156,9 @@ security: - /pbs/testEn - /redis/set - /redis/get + - /xxlJob/* testEnStr: ENC(095i92PAFyJQ5kEnkiaCYReMEtw+Dwc8qnS1i7Vx0Y8=) testEnStr1: ENC(AtQcdulLNvaSvboZuWsXIxuCwrHyUoG3oEGtmKfDSbs=) testEnStr2: ENC(+QKYnI6gAYu1SbLaZQTkZA==) -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 - appname: pbs-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8105 - # 执行器日志路径 - logpath: /home/app/pbs/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 diff --git a/pbs/src/main/resources/application-dev-65.yml b/pbs/src/main/resources/application-dev-65.yml index 08645db0..2034614b 100644 --- a/pbs/src/main/resources/application-dev-65.yml +++ b/pbs/src/main/resources/application-dev-65.yml @@ -161,32 +161,4 @@ security: - /pbs/netTest - /pbs/adapterSubmitHpcJob - /pbs/mockHpcDownloadFile - -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.65.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 - appname: pbs-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8105 - # 执行器日志路径 - logpath: /home/app/pbs/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 \ No newline at end of file + - /xxlJob/* diff --git a/pbs/src/main/resources/application-local.yml b/pbs/src/main/resources/application-local.yml index 95abeeed..2aa5147a 100644 --- a/pbs/src/main/resources/application-local.yml +++ b/pbs/src/main/resources/application-local.yml @@ -77,11 +77,6 @@ mybatis-plus: # 删除后 logic-delete-value: 0 -#showSql -#logging: -# level: -# com.sdm.dao: debug - lombok: anyConstructor: addConstructorProperties: true @@ -91,36 +86,3 @@ file: hpc: url: http://172.27.3.135/JSONAPI/JSONAPI.ashx - -#logging: -# config: ./config/logback.xml - -# xxljob 配置开始 -# xxl-job admin address list, such as "http://address" or "http://address01,http://address02" -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://127.0.0.1:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 - appname: pbs-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8105 - # 执行器日志路径 - logpath: D:\home\app\pbs\xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 \ No newline at end of file diff --git a/pbs/src/main/resources/application-lyric.yml b/pbs/src/main/resources/application-lyric.yml index 9791e086..59156457 100644 --- a/pbs/src/main/resources/application-lyric.yml +++ b/pbs/src/main/resources/application-lyric.yml @@ -175,32 +175,4 @@ security: - /mockSecondSql - /mockThirdSql - /pbs/mockHpcDownloadFile - -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.30.148:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 - appname: pbs-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8105 - # 执行器日志路径 - logpath: /home/app/pbs/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 \ No newline at end of file + - /xxlJob/* diff --git a/pbs/src/main/resources/logback.xml b/pbs/src/main/resources/logback.xml index 16ca0c8c..1f122f41 100644 --- a/pbs/src/main/resources/logback.xml +++ b/pbs/src/main/resources/logback.xml @@ -19,11 +19,11 @@ - + - ${LOG_HOME}/console.log + ${LOG_HOME}/running.log - ${LOG_HOME}/console.log.%d{yyyy-MM-dd}.%i.log.gz + ${LOG_HOME}/running.log.%d{yyyy-MM-dd}.%i.log.gz 100MB 15 3GB diff --git a/pom.xml b/pom.xml index ecb8bfe8..9f038a2d 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ system common flowable + job outbridge @@ -304,13 +305,6 @@ 5.8.38 - - - com.xuxueli - xxl-job-core - 3.3.2 - - diff --git a/project/pom.xml b/project/pom.xml index 006aa945..9d329b8a 100644 --- a/project/pom.xml +++ b/project/pom.xml @@ -43,10 +43,6 @@ org.springframework.boot spring-boot-starter-validation - - org.springframework.boot - spring-boot-starter-web - commons-net diff --git a/project/src/main/java/com/sdm/project/config/xxljob/XxlJobConfig.java b/project/src/main/java/com/sdm/project/config/xxljob/XxlJobConfig.java deleted file mode 100644 index 91190eed..00000000 --- a/project/src/main/java/com/sdm/project/config/xxljob/XxlJobConfig.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.sdm.project.config.xxljob; - -import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * xxl-job config - * - * @author xuxueli 2017-04-28 - */ -@Configuration -public class XxlJobConfig { - private static final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); - - @Value("${xxl.job.admin.addresses}") - private String adminAddresses; - - @Value("${xxl.job.admin.accessToken}") - private String accessToken; - - @Value("${xxl.job.admin.timeout}") - private int timeout; - - @Value("${xxl.job.executor.enabled}") - private Boolean enabled; - - @Value("${xxl.job.executor.appname}") - private String appname; - - @Value("${xxl.job.executor.address}") - private String address; - - @Value("${xxl.job.executor.ip}") - private String ip; - - @Value("${xxl.job.executor.port}") - private int port; - - @Value("${xxl.job.executor.logpath}") - private String logPath; - - @Value("${xxl.job.executor.logretentiondays}") - private int logRetentionDays; - - @Value("${xxl.job.executor.excludedpackage}") - private String excludedPackage; - - - @Bean - public XxlJobSpringExecutor xxlJobExecutor() { - logger.info(">>>>>>>>>>> xxl-job config init."); - XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); - xxlJobSpringExecutor.setAdminAddresses(adminAddresses); - xxlJobSpringExecutor.setAccessToken(accessToken); - xxlJobSpringExecutor.setTimeout(timeout); - xxlJobSpringExecutor.setEnabled(enabled); - xxlJobSpringExecutor.setAppname(appname); - xxlJobSpringExecutor.setAddress(address); - xxlJobSpringExecutor.setIp(ip); - xxlJobSpringExecutor.setPort(port); - xxlJobSpringExecutor.setLogPath(logPath); - xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); - xxlJobSpringExecutor.setExcludedPackage(excludedPackage); - - return xxlJobSpringExecutor; - } - - /** - * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP; - * - * 1、引入依赖: - * - * org.springframework.cloud - * spring-cloud-commons - * ${version} - * - * - * 2、配置文件,或者容器启动变量 - * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.' - * - * 3、获取IP - * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); - */ - - -} \ No newline at end of file diff --git a/project/src/main/java/com/sdm/project/controller/ScheduleController.java b/project/src/main/java/com/sdm/project/controller/ScheduleController.java new file mode 100644 index 00000000..1e9b57b9 --- /dev/null +++ b/project/src/main/java/com/sdm/project/controller/ScheduleController.java @@ -0,0 +1,55 @@ +package com.sdm.project.controller; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.feign.inter.project.IProjectScheduleFeignClient; +import com.sdm.project.schedule.lyric.CommitmentDeadlineStatusScheduleExecutor; +import com.sdm.project.schedule.lyric.LyricTodoListSchedule; +import com.sdm.project.service.impl.LyricInternalNewServiceImpl; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequestMapping("/xxlJob") +@Tag(name = "定时任务调度", description = "定时任务调度") +public class ScheduleController implements IProjectScheduleFeignClient { + + @Autowired + private CommitmentDeadlineStatusScheduleExecutor commitmentDeadlineStatusScheduleExecutor; + + @Autowired + private LyricInternalNewServiceImpl lyricInternalNewService; + + @Autowired + private LyricTodoListSchedule lyricTodoListSchedule; + + + + @GetMapping("/commitmentDeadlineStatusHandler") + @Operation(summary = "项目是否延期的定时任务") + public SdmResponse commitmentDeadlineStatusHandler() { + commitmentDeadlineStatusScheduleExecutor.commitmentDeadlineStatusHandler(); + return SdmResponse.success("ok"); + } + + @GetMapping("/syncException") + @Operation(summary = "lyric异常任务信息同步") + public SdmResponse syncException() { + SdmResponse response = lyricInternalNewService.syncException(); + return response; + } + + @GetMapping("/lyricTodoListSchedule") + @Operation(summary = "同步代办定时任务") + public SdmResponse lyricTodoListSchedule(@RequestParam(value = "tenantId")Long tenantId, @RequestParam(value = "userId")Long userId) { + SdmResponse sdmResponse = lyricTodoListSchedule.lyricTodoListHandle(tenantId, userId); + return sdmResponse; + } + +} diff --git a/project/src/main/java/com/sdm/project/schedule/lyric/CommitmentDeadlineStatusScheduleExecutor.java b/project/src/main/java/com/sdm/project/schedule/lyric/CommitmentDeadlineStatusScheduleExecutor.java index 32ee79ab..36f8e967 100644 --- a/project/src/main/java/com/sdm/project/schedule/lyric/CommitmentDeadlineStatusScheduleExecutor.java +++ b/project/src/main/java/com/sdm/project/schedule/lyric/CommitmentDeadlineStatusScheduleExecutor.java @@ -5,15 +5,11 @@ import com.sdm.common.common.ThreadLocalContext; import com.sdm.common.entity.enums.MessageTemplateEnum; import com.sdm.common.entity.enums.NodeTypeEnum; import com.sdm.common.entity.req.system.SendMsgReq; -import com.sdm.common.entity.resp.system.CIDStaffResp; import com.sdm.common.feign.impl.system.MessageFeignClientImpl; -import com.sdm.common.service.TagMapService; import com.sdm.common.service.TaskProgressService; -import com.sdm.outbridge.entity.LyricVProjectToDM; import com.sdm.project.common.MemberTypeEnum; import com.sdm.project.common.TaskExeStatusEnum; import com.sdm.project.dao.SimulationNodeMapper; -import com.sdm.project.model.bo.TaskNodeTag; import com.sdm.project.model.entity.SimulationNode; import com.sdm.project.model.entity.SimulationTask; import com.sdm.project.model.entity.SimulationTaskExtra; @@ -23,16 +19,13 @@ import com.sdm.project.service.INodeService; import com.sdm.project.service.ISimulationTaskExtraService; import com.sdm.project.service.ISimulationTaskMemberService; import com.sdm.project.service.ISimulationTaskService; -import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -79,7 +72,7 @@ public class CommitmentDeadlineStatusScheduleExecutor{ public static final String THREE_D_DESIGN = "3D设计"; - @XxlJob("commitmentDeadlineStatusHandler") +// @XxlJob("commitmentDeadlineStatusHandler") public void commitmentDeadlineStatusHandler() { log.info("项目是否延期的定时任务执行中"); try { diff --git a/project/src/main/java/com/sdm/project/schedule/lyric/LyricEncExceptionSchedule.java b/project/src/main/java/com/sdm/project/schedule/lyric/LyricEncExceptionSchedule.java index 83031c08..c9166312 100644 --- a/project/src/main/java/com/sdm/project/schedule/lyric/LyricEncExceptionSchedule.java +++ b/project/src/main/java/com/sdm/project/schedule/lyric/LyricEncExceptionSchedule.java @@ -1,41 +1,41 @@ -package com.sdm.project.schedule.lyric; - -import com.alibaba.fastjson2.JSON; -import com.sdm.common.common.SdmResponse; -import com.sdm.common.utils.MdcUtil; -import com.sdm.project.service.impl.LyricInternalNewServiceImpl; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Slf4j -@Component -public class LyricEncExceptionSchedule { - - +//package com.sdm.project.schedule.lyric; +// +//import com.alibaba.fastjson2.JSON; +//import com.sdm.common.common.SdmResponse; +//import com.sdm.common.utils.MdcUtil; +//import com.sdm.project.service.impl.LyricInternalNewServiceImpl; +//import com.xxl.job.core.context.XxlJobHelper; +//import com.xxl.job.core.handler.annotation.XxlJob; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//@Slf4j +//@Component +//public class LyricEncExceptionSchedule { +// +// +//// @Autowired +//// private ILyricInternalService lyricInternalService; +// // @Autowired -// private ILyricInternalService lyricInternalService; - - @Autowired - private LyricInternalNewServiceImpl lyricInternalNewService; - - // xxljob平台配置定时任务 - @XxlJob("lyricEncExceptionHandler") - public void lyricEncExceptionHandler() throws Exception { - // 初始化traceId - String traceId = MdcUtil.generateAndPutTraceId(); - XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息开始,param:{}", traceId); - long startTime = System.currentTimeMillis(); - SdmResponse response = lyricInternalNewService.syncException(); - long endTime = System.currentTimeMillis(); - long second = (endTime - startTime) / 1000; - log.info("{} lyricEncExceptionHandler cost [{}] s", traceId,second); - log.info("{} lyricEncExceptionHandler result :{}", traceId,JSON.toJSONString(response)); - XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); - // 销毁 - MdcUtil.removeTraceId(); - } - -} +// private LyricInternalNewServiceImpl lyricInternalNewService; +// +// // xxljob平台配置定时任务 +// @XxlJob("lyricEncExceptionHandler") +// public void lyricEncExceptionHandler() throws Exception { +// // 初始化traceId +// String traceId = MdcUtil.generateAndPutTraceId(); +// XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息开始,param:{}", traceId); +// long startTime = System.currentTimeMillis(); +// SdmResponse response = lyricInternalNewService.syncException(); +// long endTime = System.currentTimeMillis(); +// long second = (endTime - startTime) / 1000; +// log.info("{} lyricEncExceptionHandler cost [{}] s", traceId,second); +// log.info("{} lyricEncExceptionHandler result :{}", traceId,JSON.toJSONString(response)); +// XxlJobHelper.log("{} XXL-JOB:拉起lyric异常任务信息结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); +// // 销毁 +// MdcUtil.removeTraceId(); +// } +// +//} diff --git a/project/src/main/java/com/sdm/project/schedule/lyric/LyricTodoListSchedule.java b/project/src/main/java/com/sdm/project/schedule/lyric/LyricTodoListSchedule.java index 70fd39d6..64339e7c 100644 --- a/project/src/main/java/com/sdm/project/schedule/lyric/LyricTodoListSchedule.java +++ b/project/src/main/java/com/sdm/project/schedule/lyric/LyricTodoListSchedule.java @@ -1,15 +1,9 @@ package com.sdm.project.schedule.lyric; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; import com.sdm.common.common.SdmResponse; import com.sdm.common.common.ThreadLocalContext; -import com.sdm.common.utils.MdcUtil; import com.sdm.project.service.ILyricInternalService; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -21,29 +15,37 @@ public class LyricTodoListSchedule { @Autowired private ILyricInternalService lyricInternalService; - // xxljob平台配置定时任务 - @XxlJob("lyricTodoListHandler") - public void lyricTodoListHandler() throws Exception { - // 初始化traceId - String traceId = MdcUtil.generateAndPutTraceId(); - String param = XxlJobHelper.getJobParam(); - if(StringUtils.isBlank(param)){ - log.warn("{} lyricTodoListHandler param null",traceId); - return; - } - XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务开始,param:{}", traceId,param); - JSONObject paramJson = JSONObject.parseObject(param); - ThreadLocalContext.setTenantId(paramJson.getLong("tenantId")); - ThreadLocalContext.setUserId(paramJson.getLong("userId")); - long startTime = System.currentTimeMillis(); + + public SdmResponse lyricTodoListHandle(Long tenantId,Long userId){ + ThreadLocalContext.setTenantId(tenantId); + ThreadLocalContext.setUserId(userId); SdmResponse response = lyricInternalService.optimisedGetTodoList("http","",""); - long endTime = System.currentTimeMillis(); - long second = (endTime - startTime) / 1000; - log.info("{} lyricTodoListHandler cost [{}] s", traceId,second); - log.info("{} lyricTodoListHandler result :{}", traceId,JSON.toJSONString(response)); - XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); - // 销毁 - MdcUtil.removeTraceId(); + return response; } +// // xxljob平台配置定时任务 +// @XxlJob("lyricTodoListHandler") +// public void lyricTodoListHandler() throws Exception { +// // 初始化traceId +// String traceId = MdcUtil.generateAndPutTraceId(); +// String param = XxlJobHelper.getJobParam(); +// if(StringUtils.isBlank(param)){ +// log.warn("{} lyricTodoListHandler param null",traceId); +// return; +// } +// XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务开始,param:{}", traceId,param); +// JSONObject paramJson = JSONObject.parseObject(param); +// ThreadLocalContext.setTenantId(paramJson.getLong("tenantId")); +// ThreadLocalContext.setUserId(paramJson.getLong("userId")); +// long startTime = System.currentTimeMillis(); +// SdmResponse response = lyricInternalService.optimisedGetTodoList("http","",""); +// long endTime = System.currentTimeMillis(); +// long second = (endTime - startTime) / 1000; +// log.info("{} lyricTodoListHandler cost [{}] s", traceId,second); +// log.info("{} lyricTodoListHandler result :{}", traceId,JSON.toJSONString(response)); +// XxlJobHelper.log("{} XXL-JOB:拉起lyric代办任务结束:{},耗时:{} s", traceId,JSON.toJSONString(response),second); +// // 销毁 +// MdcUtil.removeTraceId(); +// } + } diff --git a/project/src/main/resources/application-dev-100.yml b/project/src/main/resources/application-dev-100.yml index 1e699035..f9b10cd5 100644 --- a/project/src/main/resources/application-dev-100.yml +++ b/project/src/main/resources/application-dev-100.yml @@ -125,6 +125,7 @@ security: - /run/generateReportInternal - /dataManager/tree/node/listUserByIds - /demand/queryTodoList + - /xxlJob/* #logging: # config: ./config/logback.xml @@ -152,35 +153,6 @@ project: lyric: enabled: false -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.100:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: project-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8101 - # 执行器日志路径 - logpath: /home/app/project/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - # 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) lyricFlag : 0 diff --git a/project/src/main/resources/application-dev-190.yml b/project/src/main/resources/application-dev-190.yml index 38f12b99..02ea0373 100644 --- a/project/src/main/resources/application-dev-190.yml +++ b/project/src/main/resources/application-dev-190.yml @@ -125,6 +125,7 @@ security: - /run/generateReportInternal - /dataManager/tree/node/listUserByIds - /demand/queryTodoList + - /xxlJob/* #logging: # config: ./config/logback.xml @@ -152,36 +153,6 @@ project: lyric: enabled: false -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.190.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: project-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8101 - # 执行器日志路径 - logpath: /home/app/project/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - - # 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) lyricFlag : 0 diff --git a/project/src/main/resources/application-dev-65.yml b/project/src/main/resources/application-dev-65.yml index d920de1c..84797e42 100644 --- a/project/src/main/resources/application-dev-65.yml +++ b/project/src/main/resources/application-dev-65.yml @@ -125,6 +125,7 @@ security: - /run/generateReportInternal - /dataManager/tree/node/listUserByIds - /demand/queryTodoList + - /xxlJob/* #logging: # config: ./config/logback.xml @@ -152,35 +153,6 @@ project: lyric: enabled: false -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.65.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: project-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8101 - # 执行器日志路径 - logpath: /home/app/project/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - # 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) lyricFlag : 0 diff --git a/project/src/main/resources/application-local.yml b/project/src/main/resources/application-local.yml index 7ab31006..79ef8442 100644 --- a/project/src/main/resources/application-local.yml +++ b/project/src/main/resources/application-local.yml @@ -131,6 +131,7 @@ security: - /run/generateReportInternal - /dataManager/tree/node/listUserByIds - /demand/queryTodoList + - /xxlJob/* YA: backend: @@ -156,37 +157,6 @@ project: lyric: enabled: false -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.65.161:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: project-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8101 - # 执行器日志路径 - logpath: /home/app/project/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - - - # 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) lyricFlag : 0 diff --git a/project/src/main/resources/application-lyric.yml b/project/src/main/resources/application-lyric.yml index 6c59e33f..c6d003aa 100644 --- a/project/src/main/resources/application-lyric.yml +++ b/project/src/main/resources/application-lyric.yml @@ -127,6 +127,7 @@ security: - /node/updateApprovalStatus - /demand/queryTodoList - /node/acceptTodoInfo + - /xxlJob/* #logging: # config: ./config/logback.xml @@ -154,36 +155,6 @@ project: lyric: enabled: true -# xxljob 配置开始 -xxl: - job: - admin: - # 调度中心地址列表 - addresses: http://192.168.30.148:7110/xxl-job-admin - # 调度中心访问令牌 - accessToken: default_token - # xxl-job 超时时间(秒),默认3秒 - timeout: 3 - executor: - # 执行器是否启用,默认true - enabled: true - # 执行器应用名称 服务名-job-executor - appname: project-job-executor - # 执行器注册地址:默认使用address注册,若为null则使用ip:port注册 - address: - # 执行器IP - ip: ${XXL_JOB_EXECUTOR_IP:} - # 执行器端口,为了好记,web服务端口+1000 - port: 8101 - # 执行器日志路径 - logpath: /home/app/project/xxljob - # 执行器日志保留天数 - logretentiondays: 14 - # 执行器排除扫描的包,多个用逗号分隔,如 "org.package01" 或 "org.package01,org.package02" - excludedpackage: -# xxljob 配置结束 - - # 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) lyricFlag : 1