# 任务特点分析

<https://oapi.dingtalk.com/robot/send?access_token=b2f1424d6119affaacab614b184f043fcd2c73db2651bb86eff29992d66820bf>

## 自动报表 定时任务特点分析

1. 每天运行1次
2. 以月为边界，每天执行的任务要求前一天的数据必须完整，中间不能间隔
3. 数据源不是特别稳定

因为第2、3点特点，需要：

1. 运行时先检查前一天的数据入库是否完整，如果完整
2. 运行时需要检查当天数据是否完备，如果不完备进入循环等待，每个一个时间间隔进行一次检查，每次检查如果缺少数据都需要发送一次提醒。

先搞定第2步，第1个问题暂时未遇到

```java
/**
     * 模拟检查等待
     * 
     * @throws Exception
     */
    @Test
    void test() throws Exception {
        String filePath = "D:/src/投诉清单各地市投诉率20230503.xlsx";
        File file = new File(filePath);
        while (!file.exists()) {
            // 发送提醒
            System.out.println("检查发现：文件" + filePath + "不存在");
            // 等待5秒后再次检查
            Thread.sleep(1000 * 5);
        }
        // 完成任务
        System.out.println("done!");
    }
```
