| | |
| | | |
| | | private final HttpAuditProperties props; |
| | | private final CopyOnWriteArrayList<HttpAuditRule> cache = new CopyOnWriteArrayList<>(); |
| | | private volatile long lastRefreshAt = 0L; |
| | | |
| | | public HttpAuditRuleServiceImpl(HttpAuditRuleMapper mapper, HttpAuditProperties props) { |
| | | this.baseMapper = mapper; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Scheduled(fixedDelayString = "${http-audit.rule-cache-refresh-ms:60000}") |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void refreshCache() { |
| | | long now = System.currentTimeMillis(); |
| | | long interval = Math.max(5000L, props.getRuleCacheRefreshMs()); |
| | | if (now - lastRefreshAt < interval) { |
| | | return; |
| | | } |
| | | lastRefreshAt = now; |
| | | try { |
| | | List<HttpAuditRule> list = list(new LambdaQueryWrapper<HttpAuditRule>() |
| | | .eq(HttpAuditRule::getDeleted, 0) |