信阳网站建设费用,莆田企业网站建设,建设中学校园网站的来源,广州十大装修设计公司今天写技术文档
跟需求对其
找负责人要上游数据接口#xff0c;并处理更新时间问题
遇到的问题#xff1a;
1.调用上游接口#xff0c;需要token#xff0c;而我的数据看板是不需要登录的#xff0c;需要其他途径获取token 不同数据使用的接口不在一个项目中#xff…今天写技术文档
跟需求对其
找负责人要上游数据接口并处理更新时间问题
遇到的问题
1.调用上游接口需要token而我的数据看板是不需要登录的需要其他途径获取token 不同数据使用的接口不在一个项目中使用的token也要区分
2.某些数据需要做出实时更新的效果 每十秒运行调度任务给当前数值加上区间内的随机数并存在Redis中 用调度任务没天校准一次数据但是这里有个问题我如果0:00校准而我的上游数据1:00才更新就会造成我的数据始终比最新的数据慢一天。所以要找人问问他们上游数据几点更新我把每天的校准时间定在其一小时后。 调度任务
Scheduled()注解以及cron表达式详解
Scheduled注解任务自动化调度。
1. Scheduled(fixedDelay 5000)
延迟执行。任务在上个任务完成后达到设置的延时时间就执行。
此处任务会在上个任务完成后经过5s再执行。
2. Scheduled(fixedRate 5000)
定时执行。任务间隔规定时间即执行。
此处任务每隔五秒便会执行一次。
3. Scheduled(cron “0 0 2 * * ?”)
自定义规则执行。比较复杂一般用6或7个标识符(非官方叫法方便区分记忆这么叫的)表示任务的执行规则。
此处的逻辑是每天的凌晨两点开始定时执行任务。
补充cron表达式
例1scheduled (cron0 0 2 2 * ? *) 表示每月二号凌晨两点执行。
例2scheduled (cron15,20,40 15-20 2/5 L * ?) 表示每月的最后一天的凌晨2点开始每隔5小时的第15分钟到第20分钟之间的每分钟的第15,20,40秒执行一次。
例3scheduled (cron0 0 0 15W * ?) 表示每月离15号最近的工作日。
例4scheduled (cron 0 0 0 0 * 2#3 ) 表示每月的第三个周一。
(1) 标识符
从左到右用空格隔开分别是秒 分 时 日 月 周 年(可省略)
第一个位置Seconds 秒区间 0-59 秒代表一分钟内的秒数。
第二个位置Minutes 分区间 0-59 分代表一小时内的分钟数。
第三个位置Hours 时区间 0-23 时代表一天中的小时数。
第四个位置Day of month 日区间 1-31 (?根据每月有多少天来)代表一月中的多少号。
第五个位置Month 月区间 1-12 代表一年中的月份。
第六个位置Day of week 周区间 1-7或者英文星期的缩写代表星期几。
注意1 对应周日 SUN , 7 对应周六 SAT 如此循环
第七个位置Year 年区间1970-2099代表具体年份但是一般不用可以直接不写。(为什么到了2099年就停了)
下面是网上找的表格方便记忆 域 是否必填 值以及范围 通配符 秒 是 0-59 , - * / 分 是 0-59 , - * / 时 是 0-23 , - * / 日 是 1-31 , - * ? / L W 月 是 1-12 或 JAN-DEC , - * / 周 是 1-7 或 SUN-SAT , - * ? / L # 年 否 1970-2099 , - * /
(2) 字符
描述写在cron表达式的标识符位置用于表达特定意义的字符如 例1 中的0,2,*,
阿拉伯数字数值出现在标识符位置的数字代表对应值比如第一个2代表两点第二个2代表二号
* 通配语义相当于每… 比如第五个位置的 *就表示每月都会执行(相当于1-12)
? 忽略语义相当于不管… 比如第六个位置的?就表示不管当前是周几就会执行。至于为什么会有这种用法我觉得应该是因为它和其他的字符可能会冲突。如果用*的话表示周一到周日都会执行此时其他语义就不明确了所以如果用不上星期的话一般给它用一个?表示 not care。
/ 间隔语义相当于每隔… 比如例2中的第三个位置的2/5就表示从2点开始每隔五小时
- 区间语义相当于第…到…的每… 比如例2中的第二个位置的15-20就表示第15分钟到20分钟之间的每分钟
, 枚举语义相当于第…和… 比如例2中的第一个位置的15,20,40就表示第15秒、20秒和40秒
L 最后(last)语义相当于最后一个 比如例2中的第四个位置的L就表示最后一天
W 工作日字面意思就是工作日 比如例3中的第四个位置的15W表示15号附近最近的工作日如果15号刚好是工作日那就15号触发如果15号是周六那就14号触发如果15号是周日那就16号触发。前面不带数字就是所有匹配的工作日。
# 周定位语义相当于每月的第几个周几 比如例4中的第六个位置的2#3就表示第三个周一。