core: storage: 热重载

This commit is contained in:
undefined committed 2021-01-21 22:48:18 +08:00
1 parent 99ac6e545d
commit 8c8dcb89eb
5 files changed
+24 -12

No files matched your search

+8 -1
View File
@@ -1,6 +1,7 @@
/* eslint-disable no-await-in-loop */
/* eslint-disable no-eval */
import fs from 'fs';
import os from 'os';
import path from 'path';
import yaml from 'js-yaml';
import { Logger } from '../logger';
@@ -99,9 +100,15 @@ export async function setting(pending: string[], fail: string[], modelSetting: t
try {
const cfg: any = yaml.load(fs.readFileSync(p).toString());
for (const key in cfg) {
let val;
if (typeof cfg[key].default === 'string') {
val = cfg[key].default
.replace(/\$TEMP/g, os.tmpdir())
.replace(/\$HOME/g, os.homedir());
}
map[cfg[key].category || 'system'](
modelSetting.Setting(
name, `${name}.${key}`, cfg[key].range, cfg[key].default,
name, `${name}.${key}`, cfg[key].range, val,
cfg[key].type || 'text', cfg[key].name || key, cfg[key].desc || '',
),
);
+2 -2
View File
@@ -10,7 +10,6 @@ import { Logger } from '../logger';
import options from '../options';
import * as bus from '../service/bus';
import db from '../service/db';
import storage from '../service/storage';
const logger = new Logger('entry/master');
const tmpdir = path.resolve(os.tmpdir(), 'hydro');
@@ -64,7 +63,8 @@ export async function load(call: Entry) {
const sopts = {
endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge,
};
await storage.start(sopts);
const storage = require('../service/storage');
storage.start(sopts);
require('../service/monitor');
for (const i of builtinModel) require(`../model/${i}`);
const scripts = require('../upgrade');
+3 -5
View File
@@ -8,7 +8,6 @@ import {
import options from '../options';
import * as bus from '../service/bus';
import db from '../service/db';
import storage from '../service/storage';
import { Logger } from '../logger';
const logger = new Logger('loader/worker');
@@ -42,7 +41,8 @@ export async function load() {
const sopts = {
endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge,
};
await storage.start(sopts);
const storage = require('../service/storage');
storage.start(sopts);
if (argv.loaderDetail) logger.info('finish: storage.connect');
for (const i of builtinLib) require(`../lib/${i}`);
if (argv.loaderDetail) logger.info('finish: lib.builtin');
@@ -67,9 +67,7 @@ export async function load() {
if (argv.loaderDetail) logger.info('finish: setting');
await handler(pending, fail);
if (argv.loaderDetail) logger.info('finish: handler.extra');
for (const i in global.Hydro.handler) {
await global.Hydro.handler[i]();
}
for (const i in global.Hydro.handler) await global.Hydro.handler[i]();
if (argv.loaderDetail) logger.info('finish: handler.apply');
const notfound = require('../handler/notfound');
await notfound.apply();