Browse Source

定时任务完善

tags/正式3.2.0
雍文秀 2 years ago
parent
commit
16abeec10e

+ 2
- 1
sapi/src/main/java/com/xhkjedu/sapi/interceptors/RequestInterceptor.java View File

2
 
2
 
3
 import com.alibaba.fastjson.JSON;
3
 import com.alibaba.fastjson.JSON;
4
 import com.xhkjedu.config.MissingParametersException;
4
 import com.xhkjedu.config.MissingParametersException;
5
+import com.xhkjedu.sapi.utils.ApiUtil;
5
 import com.xhkjedu.sapi.utils.JedisUtil;
6
 import com.xhkjedu.sapi.utils.JedisUtil;
6
 import com.xhkjedu.utils.N_Utils;
7
 import com.xhkjedu.utils.N_Utils;
7
 import com.xhkjedu.vo.ResultVo;
8
 import com.xhkjedu.vo.ResultVo;
83
                 encoding = "UTF-8";
84
                 encoding = "UTF-8";
84
             }
85
             }
85
             String params = new String(buffer, encoding);
86
             String params = new String(buffer, encoding);
86
-            Map<String, String> uriMap = new ConcurrentHashMap<>();;
87
+            Map<String, String> uriMap = ApiUtil.uriMap;
87
             String params2 = uriMap.get(requestURI);
88
             String params2 = uriMap.get(requestURI);
88
             if (N_Utils.isNotEmpty(params2) && params2.equals(params)) {
89
             if (N_Utils.isNotEmpty(params2) && params2.equals(params)) {
89
                 log.error("地址:{},参数:{}",requestURI,params);
90
                 log.error("地址:{},参数:{}",requestURI,params);

+ 49
- 0
sapi/src/main/java/com/xhkjedu/sapi/task/UriMapTask.java View File

1
+package com.xhkjedu.sapi.task;
2
+
3
+import com.xhkjedu.sapi.utils.ApiUtil;
4
+import org.springframework.scheduling.annotation.Scheduled;
5
+import org.springframework.stereotype.Component;
6
+
7
+import java.util.concurrent.ConcurrentHashMap;
8
+
9
+/**
10
+ * @author ywx
11
+ * @classname ReadTask
12
+ * @description 阅读定时任务
13
+ * CronTrigger配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]
14
+ * 说明    必填    值                  允许的通配符
15
+ * 秒        是    0-59                , - * /
16
+ * 分        是    0-59                , - * /
17
+ * 时        是    0-23                , - * /
18
+ * 日        是    1-31                , - * ? / L W
19
+ * 月        是    1-12或JAN-DEC       , - * /
20
+ * 周        是    1-7或SUN-SAT        , - * ? / L W
21
+ * 年        否    empty 或1970-2099   , - * /
22
+ * , 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发
23
+ * - 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。
24
+ * * 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发
25
+ * ? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。每月的10号触发一个操作,但不关心是周几,具体设置为 0 0 0 10 * ?
26
+ * / 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)
27
+ * L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]),
28
+ * 在周字段上表示星期六,相当于"7"或"SAT(不区分大小写)"。
29
+ * 如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五"
30
+ * W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。
31
+ * 如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.
32
+ * 如果15号正好在工作日(周一至周五),则就在该天触发。(注,"W"前只能设置具体的数字,不允许区间"-").
33
+ * @date 2020/9/1 9:36
34
+ **/
35
+@Component
36
+public class UriMapTask {
37
+
38
+    /**
39
+     * 每隔3s清除一下请求地址map
40
+     * @Param []
41
+     * @Author ywx
42
+     * @Date 2020/11/9 12:30
43
+     * @return void
44
+     **/
45
+    @Scheduled(cron = "${cron.deleteUriMap}")
46
+    public void deleteUriMap() {
47
+        ApiUtil.uriMap = new ConcurrentHashMap<>();
48
+    }
49
+}

+ 3
- 0
sapi/src/main/java/com/xhkjedu/sapi/utils/ApiUtil.java View File

12
 
12
 
13
 import java.util.ArrayList;
13
 import java.util.ArrayList;
14
 import java.util.List;
14
 import java.util.List;
15
+import java.util.Map;
16
+import java.util.concurrent.ConcurrentHashMap;
15
 
17
 
16
 import static com.xhkjedu.utils.N_Utils.getSecondTimestamp;
18
 import static com.xhkjedu.utils.N_Utils.getSecondTimestamp;
17
 
19
 
24
 @Slf4j
26
 @Slf4j
25
 public class ApiUtil {
27
 public class ApiUtil {
26
     public static Integer id = 0;
28
     public static Integer id = 0;
29
+    public static Map<String, String> uriMap = new ConcurrentHashMap<>();
27
 
30
 
28
     //获取id
31
     //获取id
29
     public static String getId(){
32
     public static String getId(){

+ 4
- 3
sapi/src/main/resources/application.properties View File

93
 nummin=10000
93
 nummin=10000
94
 nummax=50000
94
 nummax=50000
95
 numadd=100000000
95
 numadd=100000000
96
-#一次同步数量
97
-cron.syncnum=100
96
+
97
+#定时任务
98
 #默认为false,不开启定时任务
98
 #默认为false,不开启定时任务
99
 enable.scheduled=false
99
 enable.scheduled=false
100
 #周一的凌晨2:00触发生成班级周报
100
 #周一的凌晨2:00触发生成班级周报
103
 cron.classReportMonth=0 0 3 1 * ?
103
 cron.classReportMonth=0 0 3 1 * ?
104
 #周日的凌晨3:00同步基础信息
104
 #周日的凌晨3:00同步基础信息
105
 cron.synctime=0 0 3 ? * SUN
105
 cron.synctime=0 0 3 ? * SUN
106
-#一次同步数量
106
+#每隔3s清除一下请求地址map
107
+cron.deleteUriMap=0/3 * * * * ?
107
 
108
 
108
 #版本号
109
 #版本号
109
 versionname=Test_v3.2.0
110
 versionname=Test_v3.2.0

+ 2
- 2
sclass/src/main/resources/application.properties View File

53
 secretKey=nanhuakaizhangjianwangni
53
 secretKey=nanhuakaizhangjianwangni
54
 
54
 
55
 #定时任务
55
 #定时任务
56
-#每隔3s清除一下请求地址map
57
-cron.deleteUriMap=0/3 * * * * ?
58
 #默认为false,不开启定时任务
56
 #默认为false,不开启定时任务
59
 enable.scheduled=false
57
 enable.scheduled=false
58
+#每隔3s清除一下请求地址map
59
+cron.deleteUriMap=0/3 * * * * ?
60
 
60
 
61
 #版本号
61
 #版本号
62
 versionname=Test_v3.2.0
62
 versionname=Test_v3.2.0

+ 2
- 2
slive/src/main/resources/application.properties View File

87
 agora.license.secret=e2439c74719940649aa754ef8c79369d
87
 agora.license.secret=e2439c74719940649aa754ef8c79369d
88
 
88
 
89
 #定时任务
89
 #定时任务
90
+#默认为false,不开启定时任务
91
+enable.scheduled=false
90
 #每隔1分钟修改课节状态
92
 #每隔1分钟修改课节状态
91
 cron.updateSectionState=0 0/1 * * * ?
93
 cron.updateSectionState=0 0/1 * * * ?
92
 #每天凌晨处理未释放的授权
94
 #每天凌晨处理未释放的授权
93
 cron.updateLicense=0 0 0 * * ?
95
 cron.updateLicense=0 0 0 * * ?
94
 #每隔1小时修改license状态
96
 #每隔1小时修改license状态
95
 cron.updateLicenseState=0 0 0/1 * * ?
97
 cron.updateLicenseState=0 0 0/1 * * ?
96
-#默认为false,不开启定时任务
97
-enable.scheduled=false
98
 
98
 
99
 #版本号
99
 #版本号
100
 versionname=Test_v3.2.0
100
 versionname=Test_v3.2.0

+ 2
- 4
sstudy/src/main/java/com/xhkjedu/sstudy/interceptors/RequestInterceptor.java View File

3
 import com.alibaba.fastjson.JSON;
3
 import com.alibaba.fastjson.JSON;
4
 import com.xhkjedu.config.MissingParametersException;
4
 import com.xhkjedu.config.MissingParametersException;
5
 import com.xhkjedu.sstudy.utils.JedisUtil;
5
 import com.xhkjedu.sstudy.utils.JedisUtil;
6
+import com.xhkjedu.sstudy.utils.StudyUtil;
6
 import com.xhkjedu.utils.N_Utils;
7
 import com.xhkjedu.utils.N_Utils;
7
 import com.xhkjedu.vo.ResultVo;
8
 import com.xhkjedu.vo.ResultVo;
8
 import lombok.extern.slf4j.Slf4j;
9
 import lombok.extern.slf4j.Slf4j;
83
                 encoding = "UTF-8";
84
                 encoding = "UTF-8";
84
             }
85
             }
85
             String params = new String(buffer, encoding);
86
             String params = new String(buffer, encoding);
86
-            Map<String, String> uriMap =new ConcurrentHashMap<>();
87
+            Map<String, String> uriMap = StudyUtil.uriMap;
87
             String params2 = uriMap.get(requestURI);
88
             String params2 = uriMap.get(requestURI);
88
             if (N_Utils.isNotEmpty(params2) && params2.equals(params)) {
89
             if (N_Utils.isNotEmpty(params2) && params2.equals(params)) {
89
                 log.error("地址:{},参数:{}",requestURI,params);
90
                 log.error("地址:{},参数:{}",requestURI,params);
92
                 uriMap.put(requestURI, params);
93
                 uriMap.put(requestURI, params);
93
             }
94
             }
94
         }
95
         }
95
-       /* if("dev".equals(ConfigKey.env)){//开发环境接口不拦截
96
-            return true;
97
-        }*/
98
         return true;
96
         return true;
99
     }
97
     }
100
 
98
 

+ 49
- 0
sstudy/src/main/java/com/xhkjedu/sstudy/task/UriMapTask.java View File

1
+package com.xhkjedu.sstudy.task;
2
+
3
+import com.xhkjedu.sstudy.utils.StudyUtil;
4
+import org.springframework.scheduling.annotation.Scheduled;
5
+import org.springframework.stereotype.Component;
6
+
7
+import java.util.concurrent.ConcurrentHashMap;
8
+
9
+/**
10
+ * @author ywx
11
+ * @classname ReadTask
12
+ * @description 阅读定时任务
13
+ * CronTrigger配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]
14
+ * 说明    必填    值                  允许的通配符
15
+ * 秒        是    0-59                , - * /
16
+ * 分        是    0-59                , - * /
17
+ * 时        是    0-23                , - * /
18
+ * 日        是    1-31                , - * ? / L W
19
+ * 月        是    1-12或JAN-DEC       , - * /
20
+ * 周        是    1-7或SUN-SAT        , - * ? / L W
21
+ * 年        否    empty 或1970-2099   , - * /
22
+ * , 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发
23
+ * - 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。
24
+ * * 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发
25
+ * ? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。每月的10号触发一个操作,但不关心是周几,具体设置为 0 0 0 10 * ?
26
+ * / 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)
27
+ * L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]),
28
+ * 在周字段上表示星期六,相当于"7"或"SAT(不区分大小写)"。
29
+ * 如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五"
30
+ * W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。
31
+ * 如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.
32
+ * 如果15号正好在工作日(周一至周五),则就在该天触发。(注,"W"前只能设置具体的数字,不允许区间"-").
33
+ * @date 2020/9/1 9:36
34
+ **/
35
+@Component
36
+public class UriMapTask {
37
+
38
+    /**
39
+     * 每隔3s清除一下请求地址map
40
+     * @Param []
41
+     * @Author ywx
42
+     * @Date 2020/11/9 12:30
43
+     * @return void
44
+     **/
45
+    @Scheduled(cron = "${cron.deleteUriMap}")
46
+    public void deleteUriMap() {
47
+        StudyUtil.uriMap = new ConcurrentHashMap<>();
48
+    }
49
+}

+ 3
- 0
sstudy/src/main/java/com/xhkjedu/sstudy/utils/StudyUtil.java View File

12
 
12
 
13
 import java.util.ArrayList;
13
 import java.util.ArrayList;
14
 import java.util.List;
14
 import java.util.List;
15
+import java.util.Map;
16
+import java.util.concurrent.ConcurrentHashMap;
15
 
17
 
16
 import static com.xhkjedu.utils.N_Utils.getSecondTimestamp;
18
 import static com.xhkjedu.utils.N_Utils.getSecondTimestamp;
17
 
19
 
24
 @Slf4j
26
 @Slf4j
25
 public class StudyUtil {
27
 public class StudyUtil {
26
     public static Integer id = 0;
28
     public static Integer id = 0;
29
+    public static Map<String, String> uriMap = new ConcurrentHashMap<>();
27
 
30
 
28
     //获取id
31
     //获取id
29
     public static String getId(){
32
     public static String getId(){

+ 5
- 3
sstudy/src/main/resources/application.properties View File

78
 nummin=10000
78
 nummin=10000
79
 nummax=50000
79
 nummax=50000
80
 numadd=100000000
80
 numadd=100000000
81
-#一次同步数量
82
-cron.syncnum=100
81
+
82
+#定时任务
83
 #默认为false,不开启定时任务
83
 #默认为false,不开启定时任务
84
 enable.scheduled=false
84
 enable.scheduled=false
85
 #每隔1分钟修改学生作业是否显示答案
85
 #每隔1分钟修改学生作业是否显示答案
86
-cron.updatePaperStuShowanswer=* */1 * * * ?
86
+cron.updatePaperStuShowanswer=0 0/1 * * * ?
87
+#每隔3s清除一下请求地址map
88
+cron.deleteUriMap=0/3 * * * * ?
87
 
89
 
88
 #云平台接口地址
90
 #云平台接口地址
89
 cloudapi=http://scapitest.xhkjedu.com/
91
 cloudapi=http://scapitest.xhkjedu.com/

Loading…
Cancel
Save