|
@@ -123,22 +123,26 @@ public class TermBusiness {
|
|
|
final long lTermNo = termNo.longValue();
|
|
final long lTermNo = termNo.longValue();
|
|
|
|
|
|
|
|
// 2. 带缓存的终端信息获取
|
|
// 2. 带缓存的终端信息获取
|
|
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
R<TermInfo> result = this.getTermInfoByTermNo(lTermNo);
|
|
R<TermInfo> result = this.getTermInfoByTermNo(lTermNo);
|
|
|
if(R.isError(result)) {
|
|
if(R.isError(result)) {
|
|
|
return R.fail(result.getMsg());
|
|
return R.fail(result.getMsg());
|
|
|
}
|
|
}
|
|
|
TermInfo termInfo = result.getData();
|
|
TermInfo termInfo = result.getData();
|
|
|
|
|
+ log.info("[设备校时]-[获取设备信息]-[耗时: {} ms]",System.currentTimeMillis()-startTime);
|
|
|
// 3. 原子化时间检查与更新
|
|
// 3. 原子化时间检查与更新
|
|
|
final long currentTime = System.currentTimeMillis();
|
|
final long currentTime = System.currentTimeMillis();
|
|
|
|
|
+
|
|
|
final Long lastCheck = lastCheckModify.get(termNo);
|
|
final Long lastCheck = lastCheckModify.get(termNo);
|
|
|
|
|
|
|
|
if (lastCheck == null || currentTime > lastCheck) {
|
|
if (lastCheck == null || currentTime > lastCheck) {
|
|
|
|
|
+ lastCheckModify.put(termNo, currentTime + CACHE_EXPIRATION_MS);
|
|
|
// 使用原子操作避免并发问题
|
|
// 使用原子操作避免并发问题
|
|
|
- lastCheckModify.compute(termNo, (key, oldVal) ->
|
|
|
|
|
- (oldVal == null || currentTime > oldVal) ?
|
|
|
|
|
- currentTime + CACHE_EXPIRATION_MS :
|
|
|
|
|
- oldVal
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ //lastCheckModify.compute(termNo, (key, oldVal) ->
|
|
|
|
|
+ // (oldVal == null || currentTime > oldVal) ?
|
|
|
|
|
+ // currentTime + CACHE_EXPIRATION_MS :
|
|
|
|
|
+ // oldVal
|
|
|
|
|
+ //);
|
|
|
}
|
|
}
|
|
|
log.info("最后校时情况,设备:{},时间:{}", termNo, lastCheckModify.get(termNo));
|
|
log.info("最后校时情况,设备:{},时间:{}", termNo, lastCheckModify.get(termNo));
|
|
|
// 4. 构建响应数据
|
|
// 4. 构建响应数据
|