From 6832cb4e22dfde3774ecac4a4cb04dc872fa09c4 Mon Sep 17 00:00:00 2001 From: whyour Date: Tue, 25 Jul 2023 22:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=206=20=E4=BD=8D=20cron=20?= =?UTF-8?q?=E4=B8=8D=E4=BB=A5=20task=20=E5=BC=80=E5=A4=B4=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/schedule/addCron.ts | 12 +++++++++++- back/services/cron.ts | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/back/schedule/addCron.ts b/back/schedule/addCron.ts index f9e8c3ae..9207acf3 100644 --- a/back/schedule/addCron.ts +++ b/back/schedule/addCron.ts @@ -3,6 +3,9 @@ import { AddCronRequest, AddCronResponse } from '../protos/cron'; import nodeSchedule from 'node-schedule'; import { scheduleStacks } from './data'; import { runCron } from '../shared/runCron'; +import { QL_PREFIX, TASK_PREFIX } from '../config/const'; +import Logger from '../loaders/logger'; +import dayjs from 'dayjs'; const addCron = ( call: ServerUnaryCall, @@ -13,10 +16,17 @@ const addCron = ( if (scheduleStacks.has(id)) { scheduleStacks.get(id)?.cancel(); } + + let cmdStr = command; + if (!cmdStr.startsWith(TASK_PREFIX) && !cmdStr.startsWith(QL_PREFIX)) { + cmdStr = `${TASK_PREFIX}${cmdStr}`; + } + scheduleStacks.set( id, nodeSchedule.scheduleJob(id, schedule, async () => { - runCron(`ID=${id} ${command}`) + Logger.silly(`当前时间: ${dayjs().format('YYYY-MM-DD HH:mm:ss')},运行命令: ${cmdStr}`); + runCron(`ID=${id} ${cmdStr}`) }), ); } diff --git a/back/services/cron.ts b/back/services/cron.ts index e377240c..bb860996 100644 --- a/back/services/cron.ts +++ b/back/services/cron.ts @@ -24,7 +24,7 @@ export default class CronService { private isSixCron(cron: Crontab) { const { schedule } = cron; - if (schedule?.split(/ +/).length === 6) { + if (Number(schedule?.split(/ +/).length) > 5) { return true; } return false;