소스 검색

done-rate 增加日志

guoziyun 9 달 전
부모
커밋
c1835315d2
4개의 변경된 파일39개의 추가작업 그리고 4개의 파일을 삭제
  1. 17 1
      oms/dist/services/cron-jobs/done-rate.js
  2. 1 1
      oms/dist/services/cron-jobs/index.js
  3. 20 1
      oms/services/cron-jobs/done-rate.ts
  4. 1 1
      oms/services/cron-jobs/index.ts

+ 17 - 1
oms/dist/services/cron-jobs/done-rate.js

@@ -119,7 +119,13 @@ async function run() {
         let updatedLocalArtworksCount = 0; // for Art model
         const yesterdayDoneRates = await doneRateService_1.default.getDoneRatesByDate(yesterdayYYYYMMDD);
         console.log(`[DoneRate Cron] Found ${yesterdayDoneRates.length} DoneRate records for yesterday to update Art table.`);
-        for (const doneRateDoc of yesterdayDoneRates) {
+        // ============= 新增日志和进度追踪逻辑 =============
+        const totalDoneRates = yesterdayDoneRates.length;
+        let remoteUpdateStartTime = new Date().getTime();
+        console.log(`[DoneRate Cron] 开始更新远程 Art 表。总计 ${totalDoneRates} 条记录。`);
+        // ===================================================
+        for (let i = 0; i < totalDoneRates; i++) {
+            const doneRateDoc = yesterdayDoneRates[i];
             try {
                 const artworkId = doneRateDoc.res; // 获取作品 ObjectId
                 const currentArt = await artService_1.default.getArtById(artworkId.toString());
@@ -151,6 +157,12 @@ async function run() {
                     else {
                         console.warn(`[DoneRate Cron] Remote Art document with ID ${artworkId} not found. Skipping remote update.`);
                     }
+                    // ============= 新增进度日志 =============
+                    if ((i + 1) % 50 === 0 || i === totalDoneRates - 1) {
+                        const elapsed = new Date().getTime() - remoteUpdateStartTime;
+                        console.log(`[DoneRate Cron] 进度: 已更新 ${i + 1}/${totalDoneRates} 条远程 Art 记录, 当前耗时: ${elapsed}ms`);
+                    }
+                    // ==========================================
                 }
                 else {
                     console.warn(`[DoneRate Cron] Local Art document with ID ${artworkId} not found for DoneRate record (date: ${doneRateDoc.date}). Skipping Art update.`);
@@ -160,6 +172,10 @@ async function run() {
                 console.error(`[DoneRate Cron] Error updating Art document for artwork ID ${doneRateDoc.res}:`, artUpdateError);
             }
         }
+        // ============= 新增总结日志 =============
+        const remoteUpdateTimeTaken = new Date().getTime() - remoteUpdateStartTime;
+        console.log(`[DoneRate Cron] 远程 Art 表更新完成。总计更新 ${updatedRemoteArtworksCount} 条记录,总耗时 ${remoteUpdateTimeTaken}ms。`);
+        // ========================================
         const summary = `[DoneRate Cron] Daily done-rate calculation for ${yesterdayYYYYMMDD} completed. Total DoneRate processed: ${totalProcessedArtworks}. Created DoneRate: ${createdRecordsCount}, Updated DoneRate: ${updatedRecordsCount}. Updated Local Art records: ${updatedLocalArtworksCount}. Updated Remote Art records: ${updatedRemoteArtworksCount}.`;
         console.log(summary);
         return summary;

+ 1 - 1
oms/dist/services/cron-jobs/index.js

@@ -12,7 +12,7 @@ const database_1 = require("../../src/database");
 const settings = [
     // 假设这些文件将存在于 oms/services/cron-jobs/ 目录下
     ["sync", "*/10 * * * *", require("./sync/sync-service")], // 每10分钟跑一次同步
-    ["done-rate", "52 1 * * *", require("./done-rate")], // 每天凌晨0点10分, 统计作品完成率
+    ["done-rate", "10 1 * * *", require("./done-rate")], // 每天凌晨0点10分, 统计作品完成率
     ["daily-activity-detector", "50 0 * * *", require("./daily-activity-detector")], // 每天凌晨0点50分, 检查是否需要生成新的推送消息
     ["message-sender", "*/5 * * * *", require("./message-sender")], // 每5分钟运行一次
 ];

+ 20 - 1
oms/services/cron-jobs/done-rate.ts

@@ -149,7 +149,14 @@ async function run(): Promise<string> {
     const yesterdayDoneRates = await doneRateService.getDoneRatesByDate(yesterdayYYYYMMDD);
     console.log(`[DoneRate Cron] Found ${yesterdayDoneRates.length} DoneRate records for yesterday to update Art table.`);
 
-    for (const doneRateDoc of yesterdayDoneRates) {
+    // ============= 新增日志和进度追踪逻辑 =============
+    const totalDoneRates = yesterdayDoneRates.length;
+    let remoteUpdateStartTime = new Date().getTime();
+    console.log(`[DoneRate Cron] 开始更新远程 Art 表。总计 ${totalDoneRates} 条记录。`);
+    // ===================================================
+
+    for (let i = 0; i < totalDoneRates; i++) {
+      const doneRateDoc = yesterdayDoneRates[i];
       try {
         const artworkId = doneRateDoc.res; // 获取作品 ObjectId
         const currentArt = await artService.getArtById(artworkId.toString());
@@ -188,6 +195,13 @@ async function run(): Promise<string> {
           } else {
             console.warn(`[DoneRate Cron] Remote Art document with ID ${artworkId} not found. Skipping remote update.`);
           }
+
+          // ============= 新增进度日志 =============
+          if ((i + 1) % 50 === 0 || i === totalDoneRates - 1) {
+            const elapsed = new Date().getTime() - remoteUpdateStartTime;
+            console.log(`[DoneRate Cron] 进度: 已更新 ${i + 1}/${totalDoneRates} 条远程 Art 记录, 当前耗时: ${elapsed}ms`);
+          }
+          // ==========================================
         } else {
           console.warn(`[DoneRate Cron] Local Art document with ID ${artworkId} not found for DoneRate record (date: ${doneRateDoc.date}). Skipping Art update.`);
         }
@@ -196,6 +210,11 @@ async function run(): Promise<string> {
       }
     }
 
+    // ============= 新增总结日志 =============
+    const remoteUpdateTimeTaken = new Date().getTime() - remoteUpdateStartTime;
+    console.log(`[DoneRate Cron] 远程 Art 表更新完成。总计更新 ${updatedRemoteArtworksCount} 条记录,总耗时 ${remoteUpdateTimeTaken}ms。`);
+    // ========================================
+
     const summary = `[DoneRate Cron] Daily done-rate calculation for ${yesterdayYYYYMMDD} completed. Total DoneRate processed: ${totalProcessedArtworks}. Created DoneRate: ${createdRecordsCount}, Updated DoneRate: ${updatedRecordsCount}. Updated Local Art records: ${updatedLocalArtworksCount}. Updated Remote Art records: ${updatedRemoteArtworksCount}.`;
     console.log(summary);
     return summary;

+ 1 - 1
oms/services/cron-jobs/index.ts

@@ -14,7 +14,7 @@ interface CronJobModule {
 const settings: [string, string, CronJobModule][] = [
   // 假设这些文件将存在于 oms/services/cron-jobs/ 目录下
   ["sync", "*/10 * * * *", require("./sync/sync-service") as CronJobModule], // 每10分钟跑一次同步
-  ["done-rate", "52 1 * * *", require("./done-rate") as CronJobModule], // 每天凌晨0点10分, 统计作品完成率
+  ["done-rate", "10 1 * * *", require("./done-rate") as CronJobModule], // 每天凌晨0点10分, 统计作品完成率
   ["daily-activity-detector", "50 0 * * *", require("./daily-activity-detector") as CronJobModule], // 每天凌晨0点50分, 检查是否需要生成新的推送消息
   ["message-sender", "*/5 * * * *", require("./message-sender") as CronJobModule], // 每5分钟运行一次
 ];