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
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);
|
|
}
|
|
}
|
|
}
|