Browse Source

优化定时任务

lighter 7 months ago
parent
commit
9a9bfd5d64

+ 8 - 10
src/main/java/thyyxxk/wxservice_server/scheduled/GetWeChatAccessTokenTask.java

@@ -42,19 +42,17 @@ public class GetWeChatAccessTokenTask {
         return ResultVoUtil.success("获取各种token的定时任务已" + state);
     }
 
+    @PassToken
+    @GetMapping("/queryState")
+    public ResultVo<String> queryState() {
+        return ResultVoUtil.success("定时任务是否激活:" + canScheduleRun);
+    }
+
     @PassToken
     @GetMapping("/getToken")
     public ResultVo<String> getToken(@RequestParam("key") String key) {
         log.info("获取token: {}", key);
         String token = PropertiesUtil.getLocalProperty(key);
-        if (StringUtil.isBlank(token)) {
-            if (key.equals("appToken")) {
-                fetchElectronicHealthCardToken();
-            } else {
-                getAccessToken();
-            }
-            token = PropertiesUtil.getLocalProperty(key);
-        }
         if (StringUtil.isBlank(token)) {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER);
         }
@@ -71,6 +69,7 @@ public class GetWeChatAccessTokenTask {
 
     @Scheduled(fixedRate = 6900 * 1000)
     public void getAccessToken() {
+        fetchElectronicHealthCardToken();
         if (canScheduleRun && production) {
             RestTemplate restTemplate = new RestTemplate();
             String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&" +
@@ -110,8 +109,7 @@ public class GetWeChatAccessTokenTask {
         }
     }
 
-    @Scheduled(fixedRate = 6900 * 1000)
-    public void fetchElectronicHealthCardToken() {
+    private void fetchElectronicHealthCardToken() {
         if (canScheduleRun && production) {
             CommonIn commonIn = ElectronicHealthCardUtil.createFetchTokenCommonIn();
             JSONObject req = new JSONObject();