# 任务特点分析 ## 自动报表 定时任务特点分析 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!"); } ```