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.

37 lines
1.2 KiB

1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
  1. package com.example.demo.Util;
  2. import com.example.demo.service.GeneralService;
  3. import com.example.demo.service.WorkbenchService;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.scheduling.annotation.Scheduled;
  8. import org.springframework.stereotype.Component;
  9. import java.util.List;
  10. @Component
  11. public class CacheRefreshTask {
  12. @Autowired
  13. private GeneralService generalService;
  14. private static final Logger logger = LoggerFactory.getLogger(CacheRefreshTask.class);
  15. private final WorkbenchService workbenchService;
  16. @Autowired
  17. public CacheRefreshTask(WorkbenchService workbenchService) {
  18. this.workbenchService = workbenchService;
  19. }
  20. // 每小时执行一次(1分0秒)
  21. @Scheduled(cron = "0 1 * * * ?")
  22. public void refreshCache() {
  23. List<String> markets = generalService.getMarket();
  24. try {
  25. workbenchService.getCardCache(markets); // 内部会重新查询并写入缓存
  26. logger.info("缓存刷新成功:" + new java.util.Date());
  27. } catch (Exception e) {
  28. logger.error("缓存刷新失败:" + e.getMessage(), e);
  29. }
  30. }
  31. }