From 22d401ee1f103a9702448d4749f0028a676eddc0 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Thu, 26 Oct 2023 15:38:10 +0800 Subject: [PATCH] feat: ignore network error to error log (#600) --- app/core/service/BinarySyncerService.ts | 14 ++++++++++++-- app/core/service/PackageSyncerService.ts | 6 +++++- app/port/schedule/SyncBinaryWorker.ts | 15 ++++++++++++++- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/app/core/service/BinarySyncerService.ts b/app/core/service/BinarySyncerService.ts index 4810c820..a0981c82 100644 --- a/app/core/service/BinarySyncerService.ts +++ b/app/core/service/BinarySyncerService.ts @@ -148,7 +148,13 @@ export class BinarySyncerService extends AbstractService { logs.push(`[${isoNow()}] ❌❌❌❌❌ "${binaryName}" ❌❌❌❌❌`); this.logger.error('[BinarySyncerService.executeTask:fail] taskId: %s, targetName: %s, %s', task.taskId, task.targetName, task.error); - this.logger.error(err); + if (err.name === 'HttpClientRequestTimeoutError' + || err.name === 'ConnectionError' + || err.name === 'ConnectTimeoutError') { + this.logger.warn(err); + } else { + this.logger.error(err); + } await this.taskService.finishTask(task, TaskState.Fail, logs.join('\n')); } } @@ -210,7 +216,11 @@ export class BinarySyncerService extends AbstractService { this.logger.info('Not found %s, skip it', item.sourceUrl); logs.push(`[${isoNow()}][${dir}] 🧪️ [${parentIndex}${index}] Download ${item.sourceUrl} not found, skip it`); } else { - this.logger.error('Download binary %s %s', item.sourceUrl, err); + if (err.name === 'DownloadStatusInvalidError') { + this.logger.warn('Download binary %s %s', item.sourceUrl, err); + } else { + this.logger.error('Download binary %s %s', item.sourceUrl, err); + } hasDownloadError = true; logs.push(`[${isoNow()}][${dir}] ❌ [${parentIndex}${index}] Download ${item.sourceUrl} error: ${err}`); } diff --git a/app/core/service/PackageSyncerService.ts b/app/core/service/PackageSyncerService.ts index 030c599d..e94d9a42 100644 --- a/app/core/service/PackageSyncerService.ts +++ b/app/core/service/PackageSyncerService.ts @@ -661,7 +661,11 @@ export class PackageSyncerService extends AbstractService { localFile = tmpfile; logs.push(`[${isoNow()}] 🚧 [${syncIndex}] HTTP content-length: ${headers['content-length']}, timing: ${JSON.stringify(timing)} => ${localFile}`); } catch (err: any) { - this.logger.error('Download tarball %s error: %s', tarball, err); + if (err.name === 'DownloadNotFoundError' || err.name === 'DownloadStatusInvalidError') { + this.logger.warn('Download tarball %s error: %s', tarball, err); + } else { + this.logger.error('Download tarball %s error: %s', tarball, err); + } lastErrorMessage = `download tarball error: ${err}`; logs.push(`[${isoNow()}] ❌ [${syncIndex}] Synced version ${version} fail, ${lastErrorMessage}`); await this.taskService.appendTaskLog(task, logs.join('\n')); diff --git a/app/port/schedule/SyncBinaryWorker.ts b/app/port/schedule/SyncBinaryWorker.ts index 7d1dba86..3e8c44bd 100644 --- a/app/port/schedule/SyncBinaryWorker.ts +++ b/app/port/schedule/SyncBinaryWorker.ts @@ -29,7 +29,20 @@ export class SyncBinaryWorker { this.logger.info('[SyncBinaryWorker:executeTask:start] taskId: %s, targetName: %s, attempts: %s, params: %j, updatedAt: %s, delay %sms', task.taskId, task.targetName, task.attempts, task.data, task.updatedAt, startTime - task.updatedAt.getTime()); - await this.binarySyncerService.executeTask(task); + try { + await this.binarySyncerService.executeTask(task); + } catch (err) { + const use = Date.now() - startTime; + this.logger.warn('[SyncBinaryWorker:executeTask:error] taskId: %s, targetName: %s, use %sms, error: %s', + task.taskId, task.targetName, use, err.message); + if (err.name === 'ConnectTimeoutError' + || err.name === 'HttpClientRequestTimeoutError') { + this.logger.warn(err); + } else { + this.logger.error(err); + } + return; + } const use = Date.now() - startTime; this.logger.info('[SyncBinaryWorker:executeTask:success] taskId: %s, targetName: %s, use %sms', task.taskId, task.targetName, use);