| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- "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.jre/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;
|