mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: loader.detail support
This commit is contained in:
1 parent
738cb62dbd
commit
d07dd386cd
2 files changed
+26
-1
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.15.1",
|
||||
"version": "2.15.2",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* eslint-disable no-await-in-loop */
|
||||
/* eslint-disable import/no-dynamic-require */
|
||||
import { argv } from 'yargs';
|
||||
import {
|
||||
locale, template, lib, service, model, handler, script, setting, uistatic,
|
||||
builtinLib, builtinScript, builtinHandler, builtinModel,
|
||||
@@ -8,24 +9,32 @@ 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');
|
||||
|
||||
export async function load() {
|
||||
const pending = global.addons;
|
||||
const fail = [];
|
||||
const active = [];
|
||||
if (argv.loaderDetail) logger.info('start');
|
||||
require('../lib/i18n');
|
||||
require('../utils');
|
||||
require('../error');
|
||||
require('../options');
|
||||
if (argv.loaderDetail) logger.info('finish: options');
|
||||
await Promise.all([
|
||||
locale(pending, fail),
|
||||
template(pending, fail),
|
||||
uistatic(pending, fail),
|
||||
]);
|
||||
if (argv.loaderDetail) logger.info('finish: locale/template/static');
|
||||
const opts = options();
|
||||
await db.start(opts);
|
||||
if (argv.loaderDetail) logger.info('finish: db.connect');
|
||||
const modelSystem = require('../model/system');
|
||||
await modelSystem.runConfig();
|
||||
if (argv.loaderDetail) logger.info('finish: config');
|
||||
const [endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge] = modelSystem.getMany([
|
||||
'file.endPoint', 'file.accessKey', 'file.secretKey', 'file.bucket', 'file.region',
|
||||
'file.endPointForUser', 'file.endPointForJudge',
|
||||
@@ -34,28 +43,44 @@ export async function load() {
|
||||
endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge,
|
||||
};
|
||||
await 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');
|
||||
await lib(pending, fail);
|
||||
if (argv.loaderDetail) logger.info('finish: lib.extra');
|
||||
require('../service/gridfs');
|
||||
require('../service/monitor');
|
||||
if (argv.loaderDetail) logger.info('finish: gridfs/monitor');
|
||||
const server = require('../service/server');
|
||||
await server.prepare();
|
||||
if (argv.loaderDetail) logger.info('finish: server');
|
||||
await service(pending, fail);
|
||||
if (argv.loaderDetail) logger.info('finish: service.extra');
|
||||
for (const i of builtinModel) require(`../model/${i}`);
|
||||
if (argv.loaderDetail) logger.info('finish: model.builtin');
|
||||
for (const i of builtinHandler) require(`../handler/${i}`);
|
||||
if (argv.loaderDetail) logger.info('finish: handler.builtin');
|
||||
await model(pending, fail);
|
||||
if (argv.loaderDetail) logger.info('finish: model.extra');
|
||||
const modelSetting = require('../model/setting');
|
||||
await setting(pending, fail, modelSetting);
|
||||
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]();
|
||||
}
|
||||
if (argv.loaderDetail) logger.info('finish: handler.apply');
|
||||
const notfound = require('../handler/notfound');
|
||||
await notfound.apply();
|
||||
for (const i of builtinScript) require(`../script/${i}`);
|
||||
if (argv.loaderDetail) logger.info('finish: script.builtin');
|
||||
await script(pending, fail, active);
|
||||
if (argv.loaderDetail) logger.info('finish: script.extra');
|
||||
await bus.serial('app/started');
|
||||
if (argv.loaderDetail) logger.info('finish: bus.serial(start)');
|
||||
await server.start();
|
||||
if (argv.loaderDetail) logger.info('finish: server.start');
|
||||
setInterval(() => {
|
||||
process.send({ event: 'stat', count: global.Hydro.stat.reqCount });
|
||||
global.Hydro.stat.reqCount = 0;
|
||||
|
||||
Reference in new issue
Block a user