执行任务增加结束日志

This commit is contained in:
whyour 2024-08-31 14:43:44 +08:00
parent a48d100b2d
commit 7414a9d33d
3 changed files with 39 additions and 4 deletions

View File

@ -431,7 +431,7 @@ export default class CronService {
} }
this.logger.info( this.logger.info(
`[panel][开始执行任务] 参数 ${JSON.stringify(params)}`, `[panel][开始执行任务] 参数: ${JSON.stringify(params)}`,
); );
let { id, command, log_path } = cron; let { id, command, log_path } = cron;
@ -459,13 +459,28 @@ export default class CronService {
await fs.appendFile(absolutePath, data.toString()); await fs.appendFile(absolutePath, data.toString());
}); });
cp.stderr.on('data', async (data) => { cp.stderr.on('data', async (data) => {
this.logger.info(
'[panel][执行任务失败] 命令: %s, 错误信息: %j',
command,
data.toString(),
);
await fs.appendFile(absolutePath, data.toString()); await fs.appendFile(absolutePath, data.toString());
}); });
cp.on('error', async (err) => { cp.on('error', async (err) => {
this.logger.error(
'[panel][创建任务失败] 命令: %s, 错误信息: %j',
command,
err,
);
await fs.appendFile(absolutePath, JSON.stringify(err)); await fs.appendFile(absolutePath, JSON.stringify(err));
}); });
cp.on('exit', async (code) => { cp.on('exit', async (code) => {
this.logger.info(
'[panel][执行任务结束] 参数: %s, 退出码: %j',
JSON.stringify(params),
code,
);
await CrontabModel.update( await CrontabModel.update(
{ status: CrontabStatus.idle, pid: undefined }, { status: CrontabStatus.idle, pid: undefined },
{ where: { id } }, { where: { id } },

View File

@ -66,7 +66,7 @@ export default class ScheduleService {
return taskLimit[this.taskLimitMap[runOrigin]](others, () => { return taskLimit[this.taskLimitMap[runOrigin]](others, () => {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
this.logger.info( this.logger.info(
`[panel][开始执行任务] 参数 ${JSON.stringify({ `[panel][开始执行任务] 参数: ${JSON.stringify({
...others, ...others,
command, command,
})}`, })}`,
@ -104,6 +104,14 @@ export default class ScheduleService {
}); });
cp.on('exit', async (code) => { cp.on('exit', async (code) => {
this.logger.info(
'[panel][执行任务结束] 参数: %s, 退出码: %j',
JSON.stringify({
...others,
command,
}),
code,
);
const endTime = dayjs(); const endTime = dayjs();
await callbacks.onEnd?.( await callbacks.onEnd?.(
cp, cp,
@ -196,7 +204,7 @@ export default class ScheduleService {
}, },
(err) => { (err) => {
this.logger.error( this.logger.error(
'[执行任务失败] 命令: %s, 错误信息: %j', '[panel][执行任务失败] 命令: %s, 错误信息: %j',
command, command,
err, err,
); );
@ -223,7 +231,11 @@ export default class ScheduleService {
async cancelIntervalTask({ id = 0, name }: ScheduleTaskType) { async cancelIntervalTask({ id = 0, name }: ScheduleTaskType) {
const _id = this.formatId(id); 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); this.intervalSchedule.removeById(_id);
} }

View File

@ -31,6 +31,14 @@ export function runCron(cmd: string, cron: ICron): Promise<number | void> {
cp.on('exit', async (code) => { cp.on('exit', async (code) => {
taskLimit.removeQueuedCron(cron.id); taskLimit.removeQueuedCron(cron.id);
Logger.info(
'[schedule][执行任务结束] 参数: %s, 退出码: %j',
JSON.stringify({
...cron,
command: cmd,
}),
code,
);
resolve({ ...cron, command: cmd, pid: cp.pid, code }); resolve({ ...cron, command: cmd, pid: cp.pid, code });
}); });
}); });