diff --git a/scheduler/run_account_report_task.go b/scheduler/run_account_report_task.go index 337f95a..94dcddd 100644 --- a/scheduler/run_account_report_task.go +++ b/scheduler/run_account_report_task.go @@ -18,26 +18,58 @@ func main() { ctx := gctx.New() syncService := sync.NewSyncService() ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) + + now := time.Now() + lastHourEnd := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location()) + lastHourStart := lastHourEnd.Add(-1 * time.Hour) + req := &sync.AccountReportRequest{ AdvertiserID: 10001, - StartTime: time.Now().AddDate(0, 0, -30).UnixNano() / 1e6, - EndTime: time.Now().UnixNano() / 1e6, + StartTime: lastHourStart.UnixMilli(), + EndTime: lastHourEnd.UnixMilli(), SelectColumns: []string{"impression", "click", "cost", "t0GMV"}, GroupType: 1, QueryVersion: 1, } - logrus.Info("=== 开始执行定时同步任务 ===") + logrus.Infof("=== 开始执行定时同步任务 ===") + logrus.Infof("时间区间:%s ~ %s", lastHourStart.Format("2006-01-02 15:04:05"), lastHourEnd.Format("2006-01-02 15:04:05")) + result, err := syncService.SyncAccountReportWithPagination(ctx, req, true, 3) if err != nil { - logrus.Errorf("定时同步任务失败:%v", err) - logrus.Infof("任务已记录到日志表,等待补偿调度器自动重试") + logrus.Errorf("定时同步任务执行完成,存在失败的页面") + logrus.Infof("主任务日志ID:%d", result.TaskLogID) + logrus.Infof("汇总数据:成功=%v, ID=%d", result.SumSuccess, result.SumID) + logrus.Infof("明细数据:总记录数=%d, 成功页数=%d, 失败页数=%d", + result.DetailCount, result.DetailSuccessCount, result.DetailFailCount) + logrus.Infof("失败的页面已记录到 sync_task_log 表,等待补偿调度器处理") + + for _, pageResult := range result.PageResults { + if !pageResult.Success { + logrus.Warnf(" - 第 %d 页失败,任务日志ID=%d,错误:%s", + pageResult.PageNumber, pageResult.PageTaskLogID, pageResult.ErrorMessage) + } + } return } fmt.Printf("✓ 定时同步完成:\n") + fmt.Printf(" 时间区间:%s ~ %s\n", lastHourStart.Format("2006-01-02 15:04:05"), lastHourEnd.Format("2006-01-02 15:04:05")) fmt.Printf(" 汇总数据:成功=%v, ID=%d\n", result.SumSuccess, result.SumID) fmt.Printf(" 明细数据:总记录数=%d, 成功页数=%d, 失败页数=%d\n", result.DetailCount, result.DetailSuccessCount, result.DetailFailCount) - fmt.Printf(" 任务日志ID:%d\n", result.TaskLogID) + fmt.Printf(" 主任务日志ID:%d\n", result.TaskLogID) + + if len(result.PageResults) > 0 { + fmt.Printf(" 分页任务详情:\n") + for _, pageResult := range result.PageResults { + status := "✓ 成功" + if !pageResult.Success { + status = fmt.Sprintf("✗ 失败: %s", pageResult.ErrorMessage) + } + fmt.Printf(" - 第 %d 页:任务ID=%d, 记录数=%d, 耗时=%dms, 状态=%s\n", + pageResult.PageNumber, pageResult.PageTaskLogID, + pageResult.RecordCount, pageResult.DurationMs, status) + } + } }