104 lines
3.0 KiB
JavaScript
104 lines
3.0 KiB
JavaScript
|
|
'use strict';
|
|||
|
|
|
|||
|
|
const { Service } = require('ee-core');
|
|||
|
|
const Cross = require('ee-core/cross');
|
|||
|
|
const Log = require('ee-core/log');
|
|||
|
|
const Ps = require('ee-core/ps');
|
|||
|
|
const path = require("path");
|
|||
|
|
const Is = require('ee-core/utils/is');
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* cross(service层为单例)
|
|||
|
|
* @class
|
|||
|
|
*/
|
|||
|
|
class CrossService extends Service {
|
|||
|
|
|
|||
|
|
constructor(ctx) {
|
|||
|
|
super(ctx);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* create go service
|
|||
|
|
* In the default configuration, services can be started with applications.
|
|||
|
|
* Developers can turn off the configuration and create it manually.
|
|||
|
|
*/
|
|||
|
|
async createGoServer() {
|
|||
|
|
// method 1: Use the default Settings
|
|||
|
|
//const entity = await Cross.run(serviceName);
|
|||
|
|
|
|||
|
|
// method 2: Use custom configuration
|
|||
|
|
const serviceName = "go";
|
|||
|
|
const opt = {
|
|||
|
|
name: 'goapp',
|
|||
|
|
cmd: path.join(Ps.getExtraResourcesDir(), 'goapp'),
|
|||
|
|
directory: Ps.getExtraResourcesDir(),
|
|||
|
|
args: ['--port=7073'],
|
|||
|
|
appExit: true,
|
|||
|
|
}
|
|||
|
|
const entity = await Cross.run(serviceName, opt);
|
|||
|
|
Log.info('server name:', entity.name);
|
|||
|
|
Log.info('server config:', entity.config);
|
|||
|
|
Log.info('server url:', entity.getUrl());
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* create java server
|
|||
|
|
*/
|
|||
|
|
async createJavaServer() {
|
|||
|
|
const serviceName = "java";
|
|||
|
|
const jarPath = path.join(Ps.getExtraResourcesDir(), 'java-app.jar');
|
|||
|
|
const opt = {
|
|||
|
|
name: 'javaapp',
|
|||
|
|
cmd: path.join(Ps.getExtraResourcesDir(), 'jre1.8.0_201/bin/javaw.exe'),
|
|||
|
|
directory: Ps.getExtraResourcesDir(),
|
|||
|
|
args: ['-jar', '-server', '-Xms512M', '-Xmx512M', '-Xss512k', '-Dspring.profiles.active=prod', `-Dserver.port=18080`, `-Dlogging.file.path=${Ps.getLogDir()}`, `${jarPath}`],
|
|||
|
|
appExit: false,
|
|||
|
|
}
|
|||
|
|
if (Is.macOS()) {
|
|||
|
|
// Setup Java program
|
|||
|
|
opt.cmd = path.join(Ps.getExtraResourcesDir(), 'jre1.8.0_201/Contents/Home/bin/java');
|
|||
|
|
}
|
|||
|
|
if (Is.linux()) {
|
|||
|
|
// Setup Java program
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const entity = await Cross.run(serviceName, opt);
|
|||
|
|
Log.info('server name:', entity.name);
|
|||
|
|
Log.info('server config:', entity.config);
|
|||
|
|
Log.info('server url:', Cross.getUrl(entity.name));
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* create python service
|
|||
|
|
* In the default configuration, services can be started with applications.
|
|||
|
|
* Developers can turn off the configuration and create it manually.
|
|||
|
|
*/
|
|||
|
|
async createPythonServer() {
|
|||
|
|
// method 1: Use the default Settings
|
|||
|
|
//const entity = await Cross.run(serviceName);
|
|||
|
|
|
|||
|
|
// method 2: Use custom configuration
|
|||
|
|
const serviceName = "python";
|
|||
|
|
const opt = {
|
|||
|
|
name: 'pyapp',
|
|||
|
|
cmd: path.join(Ps.getExtraResourcesDir(), 'py', 'pyapp'),
|
|||
|
|
directory: path.join(Ps.getExtraResourcesDir(), 'py'),
|
|||
|
|
args: ['--port=7074'],
|
|||
|
|
windowsExtname: true,
|
|||
|
|
appExit: true,
|
|||
|
|
}
|
|||
|
|
const entity = await Cross.run(serviceName, opt);
|
|||
|
|
Log.info('server name:', entity.name);
|
|||
|
|
Log.info('server config:', entity.config);
|
|||
|
|
Log.info('server url:', entity.getUrl());
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CrossService.toString = () => '[class CrossService]';
|
|||
|
|
module.exports = CrossService;
|