From 7a535d9dd2086b4bc8d256c0cb0046a1d1a264ae Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Mon, 20 Jun 2022 08:53:43 +0800 Subject: [PATCH] =?UTF-8?q?2048=E7=A4=BE=E5=8C=BA=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RemoteWebmagicY2048communityFeign.java | 25 +++++++++++++++ .../RemoteWebmagicY2048communityFactory.java | 27 ++++++++++++++++ .../job/task/webmagic/Y2048communityTask.java | 32 +++++++++++++++++++ .../common/controller/IndexController.java | 2 -- .../xjs/common/run/ApplicationRunnerImpl.java | 8 +++-- .../xjs/y2048community/consts/InitConst.java | 2 +- .../webmagic/Y2048communityProcessor.java | 2 +- 7 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicY2048communityFeign.java create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicY2048communityFactory.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/Y2048communityTask.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicY2048communityFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicY2048communityFeign.java new file mode 100644 index 00000000..04653d28 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicY2048communityFeign.java @@ -0,0 +1,25 @@ +package com.xjs.business.webmagic; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.xjs.business.webmagic.factory.RemoteWebmagicWeiXinSouGouFactory; +import com.xjs.business.webmagic.factory.RemoteWebmagicY2048communityFactory; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 2048远程调用 + * + * @author xiejs + * @since 2022-06-20 + */ +@FeignClient(contextId = "remoteWebmagicY2048communityFeign", + value = ServiceNameConstants.BUSINESS_WEBMAGIC_SERVICE, + fallbackFactory = RemoteWebmagicY2048communityFactory.class) +public interface RemoteWebmagicY2048communityFeign { + + @GetMapping("/y2048community/taskForPRC") + R y2048communityTaskForPRC(); +} + diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicY2048communityFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicY2048communityFactory.java new file mode 100644 index 00000000..06c49b52 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicY2048communityFactory.java @@ -0,0 +1,27 @@ +package com.xjs.business.webmagic.factory; + +import com.ruoyi.common.core.domain.R; +import com.xjs.business.webmagic.RemoteWebmagicY2048communityFeign; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 2048降级 + * @author xiejs + * @since 2022-06-20 + */ +@Component +@Log4j2 +public class RemoteWebmagicY2048communityFactory implements FallbackFactory { + @Override + public RemoteWebmagicY2048communityFeign create(Throwable cause) { + return new RemoteWebmagicY2048communityFeign() { + @Override + public R y2048communityTaskForPRC() { + log.error("2048 爬虫定时任务 降级------服务可能正在运行"); + return R.fail("降级处理------服务可能正在运行"); + } + }; + } +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/Y2048communityTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/Y2048communityTask.java new file mode 100644 index 00000000..63e55ff5 --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/Y2048communityTask.java @@ -0,0 +1,32 @@ +package com.xjs.job.task.webmagic; + +import com.ruoyi.common.core.domain.R; +import com.xjs.business.webmagic.RemoteWebmagicY2048communityFeign; +import com.xjs.job.aop.TaskLog; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 2048定时任务 + * @author xiejs + * @since 2022-06-20 + */ +@Component("Y2048communityTask") +@Log4j2 +public class Y2048communityTask { + @Resource + private RemoteWebmagicY2048communityFeign remoteWebmagicY2048communityFeign; + + @TaskLog(name = "2048社区爬虫任务") + public void execute() { + log.info("---------------爬虫-2048定时任务Start-------------------"); + + R r = remoteWebmagicY2048communityFeign.y2048communityTaskForPRC(); + + log.info("爬虫-2048定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); + log.info("---------------爬虫-2048定时任务end---------------------"); + } + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java index 6ed53539..fdc89f4a 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java @@ -4,7 +4,6 @@ import cn.hutool.core.map.MapUtil; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.security.annotation.RequiresLogin; import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysOperLog; @@ -82,7 +81,6 @@ public class IndexController { @GetMapping("showData") @ApiOperation("展示数据") - @RequiresLogin public AjaxResult showWbSearch() throws ExecutionException, InterruptedException { CompletableFuture> weiboListFuture = CompletableFuture.supplyAsync(() -> apiTopsearchWeiboService.showWbSearch(), executor); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/run/ApplicationRunnerImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/run/ApplicationRunnerImpl.java index 44891a55..a4274555 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/run/ApplicationRunnerImpl.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/run/ApplicationRunnerImpl.java @@ -22,8 +22,12 @@ public class ApplicationRunnerImpl implements ApplicationRunner { @Override public void run(ApplicationArguments args) { log.info("获取天气数据中..."); - weatherService.saveNowWeather(); - weatherService.cacheForecastWeather(); + try { + weatherService.saveNowWeather(); + weatherService.cacheForecastWeather(); + } catch (Exception e) { + e.printStackTrace(); + } log.info("获取天气数据完成..."); } } diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/consts/InitConst.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/consts/InitConst.java index 26492887..e6e265b7 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/consts/InitConst.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/consts/InitConst.java @@ -22,7 +22,7 @@ public class InitConst { /** * 控制开关,true开 false关 */ - public static final Boolean CONTROL = true; + public static final Boolean CONTROL = false; } diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/webmagic/Y2048communityProcessor.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/webmagic/Y2048communityProcessor.java index c67f84b0..bf2cfa65 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/webmagic/Y2048communityProcessor.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/y2048community/webmagic/Y2048communityProcessor.java @@ -42,7 +42,7 @@ public class Y2048communityProcessor implements PageProcessor { // 根据每天日期获取最新 - // todo 网络情况好的时候爬取所有页面 + // 网络情况好的时候爬取所有页面 try {