1 Star 0 Fork 0

毛毛虫吃肉肉/xny_egg_amis

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 2.64 KB
一键复制 编辑 原始数据 按行查看 历史
毛毛虫吃肉肉 提交于 2024-04-18 14:21 . first
const fse = require("fs-extra");
const path = require("path");
const _ = require("lodash");
class AppBootHook {
constructor(app) {
this.app = app;
}
configWillLoad() {
// 此时 config 文件已经被读取并合并,但是还并未生效
// 这是应用层修改配置的最后时机
// 注意:此函数只支持同步调用
// 例如:参数中的密码是加密的,在此处进行解密
// this.app.config.mysql.password = decrypt(this.app.config.mysql.password);
// 例如:插入一个中间件到框架的 coreMiddleware 之间
// const statusIdx = this.app.config.coreMiddleware.indexOf('status');
// this.app.config.coreMiddleware.splice(statusIdx + 1, 0, 'limit');
const { database, port, redis_db } = fse.readJsonSync(path.join(process.cwd(), "database.json"));
this.app.config.sequelize.database = database;
this.app.config.cluster.listen.port = port;
this.app.config.redis.client.db = redis_db;
}
async didLoad() {
const ctx = await this.app.createAnonymousContext();
// const serverIp = await ctx.helper.getIpAddress();
// this.app.BASE_URL = `http://${serverIp}:${this.app.config.cluster.listen.port}`;
// console.oldlog = console.log;
// function log(){
// process.stdout.write(`[${ctx.helper.formatTime(Math.floor(Date.now()/1000))}] `);
// console.oldlog.apply(console, arguments);
// }
// console.log = log;
function log() {
ctx.logger.warn("---console---", ...arguments);
}
console.log = log;
}
async willReady() {
// 所有的插件都已启动完毕,但是应用整体还未 ready
// 可以做一些数据初始化等操作,这些操作成功才会启动应用
// 例如:从数据库加载数据到内存缓存
// this.app.cacheData = await this.app.model.query(QUERY_CACHE_SQL);
}
async didReady() {
// 应用已经启动完毕
console.log("当前 监听 端口:", this.app.config.cluster.listen.port);
console.log("当前 redis db:", this.app.config.redis.client.db);
console.log("当前 mysql 数据库:", this.app.config.sequelize.database);
}
async serverDidReady() {
// console.log("app serverDidReady:::::::::::::::")
// const ctx = await this.app.createAnonymousContext();
try {
this.app.server.timeout = 0;
this.app.server.keepAliveTimeout = 0;
} catch (e) {}
// 发送到所有worker
this.app.messenger.on("sync_setting", async ({ name, data }) => {
console.log("同步所有线程配置sync_setting", JSON.stringify(data));
if (name !== "egg") {
if (!this.app.config[name]) this.app.config[name] = {};
for (const key in data) {
this.app.config[name][key] = data[key];
}
}
});
}
}
module.exports = AppBootHook;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mmc7rr/xny_egg_amis.git
[email protected]:mmc7rr/xny_egg_amis.git
mmc7rr
xny_egg_amis
xny_egg_amis
master

搜索帮助