chore(logging): 降噪 PDD 同步与发单消费者常态日志

将无新单/全跳过的处理完成日志降到 debug,并压缩 decisions 详情,避免 app 日志被按日切碎。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yml2213
2026-09-15 13:48:30 +08:00
co-authored by Cursor
parent 40c51e1d8e
commit 40278a68fc
5 changed files with 111 additions and 48 deletions
@@ -4,7 +4,7 @@
*/
import type { JsonObject } from '../../types/json.js'
import { logInfo } from '../../utils/logger.js'
import { logDebug, logInfo } from '../../utils/logger.js'
import { syncAllPddStores } from '../platforms/pdd/pdd-sync-service.js'
import { getPddSourcesConfig } from '../platforms/pdd/pdd-source-config-service.js'
@@ -39,24 +39,29 @@ export async function runPddOrderSyncJob(job: JsonObject) {
const failedCount = syncResult.results.filter((r) => Boolean(r.error)).length
const totalUpserted = syncResult.results.reduce((acc, r) => acc + r.upsertedCount, 0)
const totalFetched = syncResult.results.reduce((acc, r) => acc + r.fetchedCount, 0)
const totalNewOrders = syncResult.results.reduce((acc, r) => acc + r.newOrderCount, 0)
logInfo('[pdd-order-sync-job]', '拼多多定时拉单执行完成', {
const jobLog = totalNewOrders > 0 || failedCount > 0 ? logInfo : logDebug
jobLog('[pdd-order-sync-job]', '拼多多定时拉单执行完成', {
storeCount: syncResult.storeCount,
syncedCount: syncResult.syncedCount,
okCount,
failedCount,
totalFetched,
totalUpserted,
totalNewOrders,
})
return {
ok: failedCount === 0,
status: failedCount > 0 ? (okCount > 0 ? 'partial_error' : 'failed') : 'ok',
message: `已同步 ${syncResult.syncedCount} 个店铺,拉取 ${totalFetched} 单,入库/更新 ${totalUpserted} 单${failedCount > 0 ? `,失败 ${failedCount} 个店铺` : ''}`,
message: `已同步 ${syncResult.syncedCount} 个店铺,拉取 ${totalFetched} 单,新单 ${totalNewOrders},入库/更新 ${totalUpserted} 单${failedCount > 0 ? `,失败 ${failedCount} 个店铺` : ''}`,
accountCount: syncResult.storeCount,
checkedCount: syncResult.syncedCount,
okCount,
failedCount,
asset: totalUpserted,
asset: totalNewOrders,
totalUpserted,
totalNewOrders,
}
}
@@ -1,4 +1,4 @@
import { logError, logInfo, logWarn } from '../../utils/logger.js'
import { logDebug, logError, logInfo, logWarn } from '../../utils/logger.js'
import { createHttpError } from '../../utils/http.js'
import type { JsonObject } from '../../types/json.js'
import { getScheduledJobById, getScheduledJobsConfig } from './config-service.js'
@@ -147,10 +147,15 @@ async function runJob(job: JsonObject, { manual = false }: { manual?: boolean }
lastFailedCount: Number(summary.failedCount || 0),
lastManual: manual,
})
logInfo('[scheduler]', '定时任务执行完成', {
const status = String(summary.status || 'ok')
const failedCount = Number(summary.failedCount || 0)
// 成功且无失败的周期空跑降到 debug(PDD 约 20s 一轮),手动触发与失败仍保留 info。
const isQuietSuccess = !manual && status === 'ok' && failedCount <= 0 && job.type !== 'data_retention'
const doneLog = isQuietSuccess ? logDebug : logInfo
doneLog('[scheduler]', '定时任务执行完成', {
jobId,
type: job.type,
status: String(summary.status || 'ok'),
status,
...(job.type === 'data_retention'
? {
rawPayloadRows: Number(summary.rawPayloadRows || 0),