package com.tanpu.fund.job; import com.tanpu.common.resp.CommonResp; import com.tanpu.common.utils.DateUtils; import com.tanpu.common.utils.JsonUtil; import com.tanpu.common.utils.RedisUtils; import com.tanpu.fund.feign.hangjia.FeignForHangjia; import com.tanpu.fund.service.impl.FundLatestNavService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @author: zyh * <p> */ @Slf4j @Component public class FundNavCacheJob { @Resource private FeignForHangjia feignForHangjia; @Value("${tanpu.fund.nav.cache.ifa:}") private String ifaIdList; @Value("${tanpu.most.used.fund.nav.cache.limit:200}") private int limit; @Value("${tanpu.fund.nav.cache.invoke.repeat:10}") private int repeat; @Scheduled(cron = "10 1/30 * * * ?") public void execute() { long start = System.currentTimeMillis(); String sign = DateUtils.format(DateUtils.nowDate()).replace(" ", ""); try { if (StringUtils.isNotBlank(ifaIdList)) { log.info("刷新指定ifa的基金净值缓存job开始"); String[] ss = ifaIdList.split(","); for (String id : ss) { for (int i = 0; i < repeat; i++) { log.info("开始刷新ifa=" + id + "的基金净值缓存, repeat: " + repeat); CommonResp resp = feignForHangjia.reloadFundNav4Ifa(sign, id); log.info("ifa=" + id + "的基金净值缓存刷新结果: " + JsonUtil.toJson(resp)); Thread.sleep(500); } Thread.sleep(1000); } } } catch (Exception e) { log.error("", e); } finally { log.info("私募基金最新净值更新job结束, 耗时: {}ms", System.currentTimeMillis() - start); } try { for (int i = 0; i < repeat; i++) { log.info("开始刷新使用最多基金净值缓存, limit: " + limit); sign = DateUtils.format(DateUtils.nowDate()).replace(" ", ""); CommonResp resp = feignForHangjia.reloadMostUsedFundNav(sign, limit); log.info("使用最多基金净值缓存刷新结果: " + JsonUtil.toJson(resp)); Thread.sleep(500); } } catch (Exception e) { log.error("", e); } finally { log.info("基金净值缓存刷新触发job结束, 耗时: {}ms", System.currentTimeMillis() - start); } } }