diff --git a/back/loaders/initData.ts b/back/loaders/initData.ts index 382bf915..debef233 100644 --- a/back/loaders/initData.ts +++ b/back/loaders/initData.ts @@ -1,18 +1,23 @@ +import DependenceService from 'back/services/dependence'; import { exec } from 'child_process'; import { Container } from 'typedi'; import { Crontab, CrontabStatus } from '../data/cron'; import CronService from '../services/cron'; import EnvService from '../services/env'; +import _ from 'lodash'; export default async () => { const cronService = Container.get(CronService); const envService = Container.get(EnvService); + const dependenceService = Container.get(DependenceService); const cronDb = cronService.getDb(); - const envDb = cronService.getDb(); + const envDb = envService.getDb(); + const dependenceDb = dependenceService.getDb(); // compaction data file cronDb.persistence.compactDatafile(); envDb.persistence.compactDatafile(); + dependenceDb.persistence.compactDatafile(); // 初始化更新所有任务状态为空闲 cronDb.update( @@ -21,6 +26,17 @@ export default async () => { { multi: true }, ); + // 初始化时安装所有依赖 + dependenceDb.find({}).exec((err, docs) => { + const groups = _.groupBy(docs, 'type'); + for (const key in groups) { + if (Object.prototype.hasOwnProperty.call(groups, key)) { + const group = groups[key]; + dependenceService.installOrUninstallDependencies(group); + } + } + }); + // 初始化时执行一次所有的ql repo 任务 cronDb .find({