From 117822fe7c2cfe762b512b7c23816c29a744c784 Mon Sep 17 00:00:00 2001 From: whyour Date: Sat, 26 Mar 2022 16:53:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E5=86=85=E5=AD=98=E5=8D=A0=E7=94=A8200=E5=85=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/services/schedule.ts | 82 ++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/back/services/schedule.ts b/back/services/schedule.ts index fb884414..a1b752aa 100644 --- a/back/services/schedule.ts +++ b/back/services/schedule.ts @@ -16,6 +16,8 @@ export default class ScheduleService { private intervalSchedule = new ToadScheduler(); + private maxBuffer = 200 * 1024 * 1024; + constructor(@Inject('logger') private logger: winston.Logger) {} async createCronTask({ id = 0, command, name, schedule = '' }: Crontab) { @@ -32,25 +34,29 @@ export default class ScheduleService { _id, nodeSchedule.scheduleJob(id + '', schedule, async () => { try { - exec(command, async (error, stdout, stderr) => { - if (error) { - await this.logger.info( - '执行任务%s失败,时间:%s, 错误信息:%j', - command, - new Date().toLocaleString(), - error, - ); - } + exec( + command, + { maxBuffer: this.maxBuffer }, + async (error, stdout, stderr) => { + if (error) { + await this.logger.info( + '执行任务%s失败,时间:%s, 错误信息:%j', + command, + new Date().toLocaleString(), + error, + ); + } - if (stderr) { - await this.logger.info( - '执行任务%s失败,时间:%s, 错误信息:%j', - command, - new Date().toLocaleString(), - stderr, - ); - } - }); + if (stderr) { + await this.logger.info( + '执行任务%s失败,时间:%s, 错误信息:%j', + command, + new Date().toLocaleString(), + stderr, + ); + } + }, + ); } catch (error) { await this.logger.info( '执行任务%s失败,时间:%s, 错误信息:%j', @@ -83,25 +89,29 @@ export default class ScheduleService { ); const task = new Task(name, async () => { try { - exec(command, async (error, stdout, stderr) => { - if (error) { - await this.logger.info( - '执行任务%s失败,时间:%s, 错误信息:%j', - command, - new Date().toLocaleString(), - error, - ); - } + exec( + command, + { maxBuffer: this.maxBuffer }, + async (error, stdout, stderr) => { + if (error) { + await this.logger.info( + '执行任务%s失败,时间:%s, 错误信息:%j', + command, + new Date().toLocaleString(), + error, + ); + } - if (stderr) { - await this.logger.info( - '执行任务%s失败,时间:%s, 错误信息:%j', - command, - new Date().toLocaleString(), - stderr, - ); - } - }); + if (stderr) { + await this.logger.info( + '执行任务%s失败,时间:%s, 错误信息:%j', + command, + new Date().toLocaleString(), + stderr, + ); + } + }, + ); } catch (error) { await this.logger.info( '执行任务%s失败,时间:%s, 错误信息:%j',