|
@@ -119,7 +119,13 @@ async function run() {
|
|
|
let updatedLocalArtworksCount = 0; // for Art model
|
|
let updatedLocalArtworksCount = 0; // for Art model
|
|
|
const yesterdayDoneRates = await doneRateService_1.default.getDoneRatesByDate(yesterdayYYYYMMDD);
|
|
const yesterdayDoneRates = await doneRateService_1.default.getDoneRatesByDate(yesterdayYYYYMMDD);
|
|
|
console.log(`[DoneRate Cron] Found ${yesterdayDoneRates.length} DoneRate records for yesterday to update Art table.`);
|
|
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 {
|
|
try {
|
|
|
const artworkId = doneRateDoc.res; // 获取作品 ObjectId
|
|
const artworkId = doneRateDoc.res; // 获取作品 ObjectId
|
|
|
const currentArt = await artService_1.default.getArtById(artworkId.toString());
|
|
const currentArt = await artService_1.default.getArtById(artworkId.toString());
|
|
@@ -151,6 +157,12 @@ async function run() {
|
|
|
else {
|
|
else {
|
|
|
console.warn(`[DoneRate Cron] Remote Art document with ID ${artworkId} not found. Skipping remote update.`);
|
|
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 {
|
|
else {
|
|
|
console.warn(`[DoneRate Cron] Local Art document with ID ${artworkId} not found for DoneRate record (date: ${doneRateDoc.date}). Skipping Art update.`);
|
|
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);
|
|
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}.`;
|
|
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);
|
|
console.log(summary);
|
|
|
return summary;
|
|
return summary;
|