ReportPrepareTask.java 1.06 KB
package cn.fw.valhalla.controller.task;

import cn.fw.valhalla.common.utils.DateUtil;
import cn.fw.valhalla.common.utils.ThreadPoolUtil;
import cn.fw.valhalla.service.bus.CustomerRetentionRatioBizService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.concurrent.CompletableFuture;

/**
 * @author : kurisu
 * @className : ReportPrepareTask
 * @description : 报表准备任务
 * @date: 2020-11-24 15:52
 */
@RequiredArgsConstructor
@Component
@Slf4j
public class ReportPrepareTask {
    private final CustomerRetentionRatioBizService retentionRatioBizService;

    @Scheduled(cron = "0 0 0 ? * * ")
    @Transactional(rollbackFor = Exception.class)
    public void extractingData() {
        CompletableFuture.runAsync(() -> retentionRatioBizService.extracting(DateUtil.startDate(new Date())), ThreadPoolUtil.getInstance().getExecutor());
    }
}