You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB

package com.example.demo.Util;
import com.example.demo.service.GeneralService;
import com.example.demo.service.WorkbenchService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class CacheRefreshTask {
@Autowired
private GeneralService generalService;
private static final Logger logger = LoggerFactory.getLogger(CacheRefreshTask.class);
private final WorkbenchService workbenchService;
@Autowired
public CacheRefreshTask(WorkbenchService workbenchService) {
this.workbenchService = workbenchService;
}
// 每小时执行一次(1分0秒)
@Scheduled(cron = "0 1 * * * ?")
public void refreshCache() {
List<String> markets = generalService.getMarket();
try {
workbenchService.getCardCache(markets); // 内部会重新查询并写入缓存
logger.info("缓存刷新成功:" + new java.util.Date());
} catch (Exception e) {
logger.error("缓存刷新失败:" + e.getMessage(), e);
}
}
}