diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/CloudAnalysisFeignClient.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/CloudAnalysisFeignClient.java new file mode 100644 index 000000000..88acf052b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/CloudAnalysisFeignClient.java @@ -0,0 +1,60 @@ +package com.elink.esua.epdc.feign; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.feign.fallback.CloudAnalysisFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * + * 调用数据分析模块 + * + * @Author:wanggongfeng + * @Date:2020/08/25 09:36 + */ +@FeignClient(name = ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, fallback = CloudAnalysisFeignClientFallback.class) +public interface CloudAnalysisFeignClient { + + /** + * 难点赌点 + * + * @return + */ + @PostMapping("cloudAnalysis/screenJob/difficultydata") + Result difficultydata(); + + /** + * 基层治理-治理能力数据 + * + * @return + */ + @PostMapping("cloudAnalysis/screenJob/governrankdata") + Result governrankdata(); + + /** + * 党建引领-组织排行 + * + * @return + */ + @PostMapping("cloudAnalysis/screenJob/orgrankdata") + Result orgrankdata(); + + /** + * 党建引领|基层治理-居民(党员)积分排行榜 + * + * @return + */ + @PostMapping("cloudAnalysis/screenJob/partyuserrankdata") + Result partyuserrankdata(); + + /** + * 基层治理-公众参与 + * + * @return + */ + @PostMapping("cloudAnalysis/screenJob/userjoin") + Result userjoin(); + + +} diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/CloudAnalysisFeignClientFallback.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/CloudAnalysisFeignClientFallback.java new file mode 100644 index 000000000..f43d8e7f4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/CloudAnalysisFeignClientFallback.java @@ -0,0 +1,67 @@ +package com.elink.esua.epdc.feign.fallback; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.feign.CloudAnalysisFeignClient; +import org.springframework.stereotype.Component; + +/** + * @Author:wanggongfeng + * @Date:2020/08/25 09:36 + */ +@Component +public class CloudAnalysisFeignClientFallback implements CloudAnalysisFeignClient { + + /** + * 难点赌点 + * + * @return + */ + @Override + public Result difficultydata() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, "difficultydata"); + } + + /** + * 基层治理-治理能力数据 + * + * @return + */ + @Override + public Result governrankdata() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, "governrankdata"); + } + + /** + * 党建引领-组织排行 + * + * @return + */ + @Override + public Result orgrankdata() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, "orgrankdata"); + } + + /** + * 党建引领|基层治理-居民(党员)积分排行榜 + * + * @return + */ + @Override + public Result partyuserrankdata() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, "partyuserrankdata"); + } + + /** + * 基层治理-公众参与 + * + * @return + */ + @Override + public Result userjoin() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_CLOUD_ANALYSIS_SERVER, "userjoin"); + } + + +} diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTask.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTask.java new file mode 100644 index 000000000..5f181e9fd --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTask.java @@ -0,0 +1,21 @@ +package com.elink.esua.epdc.task.screen; + + +/** +* @describe: 大屏展示推送数据接口-每天推送一次 +* @author wanggongfeng +* @date 2020-08-25 09:25 +*/ +public interface PushDataEveryDayTask { + + /** + * @describe: 大屏数据推送 + * @author wanggongfeng + * @date 2020-08-25 09:25 + * @params [] + * @return void + */ + void run(); + + +} diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTaskImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTaskImpl.java new file mode 100644 index 000000000..df605c0bb --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryDayTaskImpl.java @@ -0,0 +1,149 @@ +package com.elink.esua.epdc.task.screen; + +import com.elink.esua.epdc.feign.CloudAnalysisFeignClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +/** + * @program: esua-epdc + * @description: 大屏展示推送数据-每天 + * @author: wanggongfeng + * @create: 2020-08-25 09:25 + **/ +@Component("pushDataEveryDayTask") +public class PushDataEveryDayTaskImpl implements PushDataEveryDayTask { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + //创建固定大小为100 的线程池 + private static ExecutorService service = Executors.newFixedThreadPool(100); + + @Autowired + private CloudAnalysisFeignClient cloudAnalysisFeignClient; + + @Override + public void run() { + for(int i = 0 ; i < 5 ; i++){ + Integer integer = createThread(i); + } + + } + + /** + * 创建线程调用 + * @param methodIndex + * @return + */ + public Integer createThread(Integer methodIndex){ + //使用Future,Callable实现发送消息后返回发送结果 + Future future = service.submit(new Callable() { + @Override + public Integer call() throws Exception { + //调用相对比较耗时的发送消息接口 + Thread.sleep(200); + if (methodIndex == 0) { + // 调用-->难点赌点 + difficultydata(); + } else if (methodIndex == 1){ + // 调用-->基层治理-治理能力数据 + governrankdata(); + } else if (methodIndex == 2){ + // 调用-->党建引领-组织排行 + orgrankdata(); + } else if (methodIndex == 3){ + // 调用-->党建引领|基层治理-居民(党员)积分排行榜 + partyuserrankdata(); + } else if (methodIndex == 4){ + // 调用-->基层治理-公众参与 + userjoin(); + } + return 0; + } + }); + Integer isSuccess = 0; + try { + isSuccess = future.get(); + }catch (Exception e){ + + } + return isSuccess; + + } + + + /** + * 难点赌点 + * @Author: wanggongfeng + * @Date: 2020-08-25 09:25 + */ + public void difficultydata() { + //方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|难点赌点>定时任务开始执行"); + cloudAnalysisFeignClient.difficultydata(); + logger.info("<" + methodName + "|难点赌点>定时任务执行结束"); + } + + /** + * 基层治理-治理能力数据 + * @Author: wanggongfeng + * @Date: 2020-08-25 09:25 + */ + public void governrankdata() { + //方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|基层治理-治理能力数据>定时任务开始执行"); + cloudAnalysisFeignClient.governrankdata(); + logger.info("<" + methodName + "|基层治理-治理能力数据>定时任务执行结束"); + } + + /** + * 党建引领-组织排行 + * @Author: wanggongfeng + * @Date: 2020-08-25 09:25 + */ + public void orgrankdata() { + //方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|党建引领-组织排行>定时任务开始执行"); + cloudAnalysisFeignClient.orgrankdata(); + logger.info("<" + methodName + "|党建引领-组织排行>定时任务执行结束"); + } + + /** + * 党建引领|基层治理-居民(党员)积分排行榜 + * @Author: wanggongfeng + * @Date: 2020-08-25 09:25 + */ + public void partyuserrankdata() { + //方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|党建引领|基层治理-居民(党员)积分排行榜>定时任务开始执行"); + cloudAnalysisFeignClient.partyuserrankdata(); + logger.info("<" + methodName + "|党建引领|基层治理-居民(党员)积分排行榜>定时任务执行结束"); + } + + /** + * 基层治理-公众参与 + * @Author: wanggongfeng + * @Date: 2020-08-25 09:25 + */ + public void userjoin() { + //方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|基层治理-公众参与>定时任务开始执行"); + cloudAnalysisFeignClient.userjoin(); + logger.info("<" + methodName + "|基层治理-公众参与>定时任务执行结束"); + } + + + + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryFiveMinTaskImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryFiveMinTaskImpl.java index 2cc817b2f..552e70232 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryFiveMinTaskImpl.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/PushDataEveryFiveMinTaskImpl.java @@ -6,6 +6,11 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + /** * @program: esua-epdc * @description: 大屏展示推送数据-每5分钟 @@ -17,12 +22,60 @@ public class PushDataEveryFiveMinTaskImpl implements PushDataEveryFiveMinTask { private Logger logger = LoggerFactory.getLogger(getClass()); + //创建固定大小为100 的线程池 + private static ExecutorService service = Executors.newFixedThreadPool(100); + @Autowired private AnalysisFeignClint analysisFeignClint; @Override public void run() { + for(int i = 0 ; i < 5 ; i++){ + Integer integer = createThread(i); + } + + } + + /** + * 创建线程调用 + * @param methodIndex + * @return + */ + public Integer createThread(Integer methodIndex){ + //使用Future,Callable实现发送消息后返回发送结果 + Future future = service.submit(new Callable() { + @Override + public Integer call() throws Exception { + //调用相对比较耗时的发送消息接口 + Thread.sleep(200); + if (methodIndex == 0) { + // 调用--> + cpcbasedata(); + } else if (methodIndex == 1){ + // 调用--> + eventdata(); + } else if (methodIndex == 2){ + // 调用--> + partylinkmassesdata(); + } else if (methodIndex == 3){ + // 调用--> + pioneerdata(); + } else if (methodIndex == 4){ + // 调用--> + usertotaldata(); + } + return 0; + } + }); + Integer isSuccess = 0; + try { + isSuccess = future.get(); + }catch (Exception e){ + + } + return isSuccess; + }