From 7414a9d33dab75e4e6791b5635bcd7d1dbd9db50 Mon Sep 17 00:00:00 2001 From: whyour Date: Sat, 31 Aug 2024 14:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BB=BB=E5=8A=A1=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=93=E6=9D=9F=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/services/cron.ts | 17 ++++++++++++++++- back/services/schedule.ts | 18 +++++++++++++++--- back/shared/runCron.ts | 8 ++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/back/services/cron.ts b/back/services/cron.ts index c9130e9b..cafa1b7f 100644 --- a/back/services/cron.ts +++ b/back/services/cron.ts @@ -431,7 +431,7 @@ export default class CronService { } this.logger.info( - `[panel][开始执行任务] 参数 ${JSON.stringify(params)}`, + `[panel][开始执行任务] 参数: ${JSON.stringify(params)}`, ); let { id, command, log_path } = cron; @@ -459,13 +459,28 @@ export default class CronService { await fs.appendFile(absolutePath, data.toString()); }); cp.stderr.on('data', async (data) => { + this.logger.info( + '[panel][执行任务失败] 命令: %s, 错误信息: %j', + command, + data.toString(), + ); await fs.appendFile(absolutePath, data.toString()); }); cp.on('error', async (err) => { + this.logger.error( + '[panel][创建任务失败] 命令: %s, 错误信息: %j', + command, + err, + ); await fs.appendFile(absolutePath, JSON.stringify(err)); }); cp.on('exit', async (code) => { + this.logger.info( + '[panel][执行任务结束] 参数: %s, 退出码: %j', + JSON.stringify(params), + code, + ); await CrontabModel.update( { status: CrontabStatus.idle, pid: undefined }, { where: { id } }, diff --git a/back/services/schedule.ts b/back/services/schedule.ts index 124645a6..2eefb87d 100644 --- a/back/services/schedule.ts +++ b/back/services/schedule.ts @@ -66,7 +66,7 @@ export default class ScheduleService { return taskLimit[this.taskLimitMap[runOrigin]](others, () => { return new Promise(async (resolve, reject) => { this.logger.info( - `[panel][开始执行任务] 参数 ${JSON.stringify({ + `[panel][开始执行任务] 参数: ${JSON.stringify({ ...others, command, })}`, @@ -104,6 +104,14 @@ export default class ScheduleService { }); cp.on('exit', async (code) => { + this.logger.info( + '[panel][执行任务结束] 参数: %s, 退出码: %j', + JSON.stringify({ + ...others, + command, + }), + code, + ); const endTime = dayjs(); await callbacks.onEnd?.( cp, @@ -196,7 +204,7 @@ export default class ScheduleService { }, (err) => { this.logger.error( - '[执行任务失败] 命令: %s, 错误信息: %j', + '[panel][执行任务失败] 命令: %s, 错误信息: %j', command, err, ); @@ -223,7 +231,11 @@ export default class ScheduleService { async cancelIntervalTask({ id = 0, name }: ScheduleTaskType) { const _id = this.formatId(id); - this.logger.info('[取消interval任务], 任务ID: %s, 任务名: %s', _id, name); + this.logger.info( + '[panel][取消interval任务], 任务ID: %s, 任务名: %s', + _id, + name, + ); this.intervalSchedule.removeById(_id); } diff --git a/back/shared/runCron.ts b/back/shared/runCron.ts index 3d9fe56b..29ed97e2 100644 --- a/back/shared/runCron.ts +++ b/back/shared/runCron.ts @@ -31,6 +31,14 @@ export function runCron(cmd: string, cron: ICron): Promise { cp.on('exit', async (code) => { taskLimit.removeQueuedCron(cron.id); + Logger.info( + '[schedule][执行任务结束] 参数: %s, 退出码: %j', + JSON.stringify({ + ...cron, + command: cmd, + }), + code, + ); resolve({ ...cron, command: cmd, pid: cp.pid, code }); }); });