89 lines
3.0 KiB
JavaScript
89 lines
3.0 KiB
JavaScript
const fs = require('fs');
|
||
const os = require('os');
|
||
const path = require('path');
|
||
const {env} = require('process');
|
||
const request = require('sync-request');
|
||
|
||
console.log('服务端环境变量 ', env.SERVER_ID, env.SERVER_TYPE);
|
||
|
||
if (env.SERVER_ID) {
|
||
let type = env.SERVER_TYPE || 'game';
|
||
let url = `http://server-tool:7456/server/getConfig?sid=${env.SERVER_ID}&type=${type}`
|
||
console.log('拉取服务端启动配置文件', url);
|
||
|
||
let res = request('GET', url, {
|
||
headers: {
|
||
'content-type': 'application/json'
|
||
}
|
||
});
|
||
|
||
const body = JSON.parse(res.body.toString());
|
||
if (body) {
|
||
fs.writeFileSync('config.json', JSON.stringify(body, null, 2));
|
||
console.log('服务端配置: ', body);
|
||
} else {
|
||
console.log('拉取失败');
|
||
}
|
||
}
|
||
|
||
//读取服务配置
|
||
const config = fs.existsSync(path.resolve(__dirname, 'config.json')) ? JSON.parse(fs.readFileSync(path.resolve(__dirname, 'config.json'), 'utf-8')) : {};
|
||
const dis = config.serverId != undefined ? config.serverId : '0';
|
||
const localApps = [
|
||
{
|
||
// 应用程序名称
|
||
name: 'heijiao_msg_s' + dis,
|
||
// 执行文件
|
||
script: 'index.js',
|
||
// 应用程序所在的目录
|
||
cwd: './',
|
||
//集群实例数量,0表示根据cpu核心数自动控制
|
||
instances: 8,
|
||
// 传递给脚本的参数
|
||
args: '-serverType msg',
|
||
// 是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。
|
||
watch: false,
|
||
// 不用监听的文件
|
||
ignore_watch: [
|
||
'logs'
|
||
],
|
||
//out_file: "/dev/stdout",
|
||
//error_file: "/dev/stderr"
|
||
// 自定义应用程序的错误日志文件(错误日志文件)
|
||
error_file: './logs/errMsg.log',
|
||
// 自定义应用程序日志文件(正常日志文件)
|
||
out_file: './logs/outMsg.log',
|
||
// 指定日志文件的时间格式
|
||
log_date_format: 'YYYY-MM-DD HH:mm:ss',
|
||
}
|
||
];
|
||
const crossApps = [
|
||
{
|
||
// 应用程序名称
|
||
name: 'heijiao_cross_s' + dis,
|
||
// 执行文件
|
||
script: 'index.js',
|
||
// 应用程序所在的目录
|
||
cwd: './',
|
||
// 传递给脚本的参数
|
||
args: '-serverType cross',
|
||
// 是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。
|
||
watch: false,
|
||
// 不用监听的文件
|
||
ignore_watch: [
|
||
'logs'
|
||
],
|
||
//out_file: "/dev/stdout",
|
||
//error_file: "/dev/stderr"
|
||
// 自定义应用程序的错误日志文件(错误日志文件)
|
||
error_file: './logs/errCross.log',
|
||
// 自定义应用程序日志文件(正常日志文件)
|
||
out_file: './logs/outCross.log',
|
||
// 指定日志文件的时间格式
|
||
log_date_format: 'YYYY-MM-DD HH:mm:ss',
|
||
}
|
||
]
|
||
|
||
module.exports = {
|
||
apps: config.type == 'cross' ? crossApps : localApps
|
||
} |