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",
|
"name": "hydrooj",
|
||||||
"version": "2.15.1",
|
"version": "2.15.2",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "dist/loader.js",
|
"main": "dist/loader.js",
|
||||||
"typings": "dist/loader.d.ts",
|
"typings": "dist/loader.d.ts",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
/* eslint-disable import/no-dynamic-require */
|
/* eslint-disable import/no-dynamic-require */
|
||||||
|
import { argv } from 'yargs';
|
||||||
import {
|
import {
|
||||||
locale, template, lib, service, model, handler, script, setting, uistatic,
|
locale, template, lib, service, model, handler, script, setting, uistatic,
|
||||||
builtinLib, builtinScript, builtinHandler, builtinModel,
|
builtinLib, builtinScript, builtinHandler, builtinModel,
|
||||||
@@ -8,24 +9,32 @@ import options from '../options';
|
|||||||
import * as bus from '../service/bus';
|
import * as bus from '../service/bus';
|
||||||
import db from '../service/db';
|
import db from '../service/db';
|
||||||
import storage from '../service/storage';
|
import storage from '../service/storage';
|
||||||
|
import { Logger } from '../logger';
|
||||||
|
|
||||||
|
const logger = new Logger('loader/worker');
|
||||||
|
|
||||||
export async function load() {
|
export async function load() {
|
||||||
const pending = global.addons;
|
const pending = global.addons;
|
||||||
const fail = [];
|
const fail = [];
|
||||||
const active = [];
|
const active = [];
|
||||||
|
if (argv.loaderDetail) logger.info('start');
|
||||||
require('../lib/i18n');
|
require('../lib/i18n');
|
||||||
require('../utils');
|
require('../utils');
|
||||||
require('../error');
|
require('../error');
|
||||||
require('../options');
|
require('../options');
|
||||||
|
if (argv.loaderDetail) logger.info('finish: options');
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
locale(pending, fail),
|
locale(pending, fail),
|
||||||
template(pending, fail),
|
template(pending, fail),
|
||||||
uistatic(pending, fail),
|
uistatic(pending, fail),
|
||||||
]);
|
]);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: locale/template/static');
|
||||||
const opts = options();
|
const opts = options();
|
||||||
await db.start(opts);
|
await db.start(opts);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: db.connect');
|
||||||
const modelSystem = require('../model/system');
|
const modelSystem = require('../model/system');
|
||||||
await modelSystem.runConfig();
|
await modelSystem.runConfig();
|
||||||
|
if (argv.loaderDetail) logger.info('finish: config');
|
||||||
const [endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge] = modelSystem.getMany([
|
const [endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge] = modelSystem.getMany([
|
||||||
'file.endPoint', 'file.accessKey', 'file.secretKey', 'file.bucket', 'file.region',
|
'file.endPoint', 'file.accessKey', 'file.secretKey', 'file.bucket', 'file.region',
|
||||||
'file.endPointForUser', 'file.endPointForJudge',
|
'file.endPointForUser', 'file.endPointForJudge',
|
||||||
@@ -34,28 +43,44 @@ export async function load() {
|
|||||||
endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge,
|
endPoint, accessKey, secretKey, bucket, region, endPointForUser, endPointForJudge,
|
||||||
};
|
};
|
||||||
await storage.start(sopts);
|
await storage.start(sopts);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: storage.connect');
|
||||||
for (const i of builtinLib) require(`../lib/${i}`);
|
for (const i of builtinLib) require(`../lib/${i}`);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: lib.builtin');
|
||||||
await lib(pending, fail);
|
await lib(pending, fail);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: lib.extra');
|
||||||
require('../service/gridfs');
|
require('../service/gridfs');
|
||||||
require('../service/monitor');
|
require('../service/monitor');
|
||||||
|
if (argv.loaderDetail) logger.info('finish: gridfs/monitor');
|
||||||
const server = require('../service/server');
|
const server = require('../service/server');
|
||||||
await server.prepare();
|
await server.prepare();
|
||||||
|
if (argv.loaderDetail) logger.info('finish: server');
|
||||||
await service(pending, fail);
|
await service(pending, fail);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: service.extra');
|
||||||
for (const i of builtinModel) require(`../model/${i}`);
|
for (const i of builtinModel) require(`../model/${i}`);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: model.builtin');
|
||||||
for (const i of builtinHandler) require(`../handler/${i}`);
|
for (const i of builtinHandler) require(`../handler/${i}`);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: handler.builtin');
|
||||||
await model(pending, fail);
|
await model(pending, fail);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: model.extra');
|
||||||
const modelSetting = require('../model/setting');
|
const modelSetting = require('../model/setting');
|
||||||
await setting(pending, fail, modelSetting);
|
await setting(pending, fail, modelSetting);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: setting');
|
||||||
await handler(pending, fail);
|
await handler(pending, fail);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: handler.extra');
|
||||||
for (const i in global.Hydro.handler) {
|
for (const i in global.Hydro.handler) {
|
||||||
await global.Hydro.handler[i]();
|
await global.Hydro.handler[i]();
|
||||||
}
|
}
|
||||||
|
if (argv.loaderDetail) logger.info('finish: handler.apply');
|
||||||
const notfound = require('../handler/notfound');
|
const notfound = require('../handler/notfound');
|
||||||
await notfound.apply();
|
await notfound.apply();
|
||||||
for (const i of builtinScript) require(`../script/${i}`);
|
for (const i of builtinScript) require(`../script/${i}`);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: script.builtin');
|
||||||
await script(pending, fail, active);
|
await script(pending, fail, active);
|
||||||
|
if (argv.loaderDetail) logger.info('finish: script.extra');
|
||||||
await bus.serial('app/started');
|
await bus.serial('app/started');
|
||||||
|
if (argv.loaderDetail) logger.info('finish: bus.serial(start)');
|
||||||
await server.start();
|
await server.start();
|
||||||
|
if (argv.loaderDetail) logger.info('finish: server.start');
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
process.send({ event: 'stat', count: global.Hydro.stat.reqCount });
|
process.send({ event: 'stat', count: global.Hydro.stat.reqCount });
|
||||||
global.Hydro.stat.reqCount = 0;
|
global.Hydro.stat.reqCount = 0;
|
||||||
|
|||||||
Reference in new issue
Block a user