diff --git a/lib/egg.js b/lib/egg.js index d9edea7146..96c978b534 100644 --- a/lib/egg.js +++ b/lib/egg.js @@ -105,6 +105,7 @@ class EggApplication extends EggCore { */ this.cluster = (clientClass, options) => { options = Object.assign({}, this.config.clusterClient, options, { + singleMode: this.options.mode === 'single', // cluster need a port that can't conflict on the environment port: this.options.clusterPort, // agent worker is leader, app workers are follower diff --git a/lib/start.js b/lib/start.js index df80cfb884..cabeac8dc7 100644 --- a/lib/start.js +++ b/lib/start.js @@ -1,6 +1,5 @@ 'use strict'; -const detectPort = require('detect-port'); const path = require('path'); module.exports = async (options = {}) => { @@ -8,8 +7,6 @@ module.exports = async (options = {}) => { options.baseDir = options.baseDir || process.cwd(); options.mode = 'single'; - // FIXME: cluster-client support single process mode - options.clusterPort = await detectPort(); // get agent from options.framework and package.egg.framework if (!options.framework) { diff --git a/package.json b/package.json index f875acb503..710f58b8ce 100644 --- a/package.json +++ b/package.json @@ -15,19 +15,18 @@ "dependencies": { "@types/accepts": "^1.3.5", "@types/koa": "^2.0.48", - "@types/koa-router": "^7.0.39", + "@types/koa-router": "^7.0.40", "@types/urllib": "^2.28.1", "accepts": "^1.3.5", - "agentkeepalive": "^4.0.0", + "agentkeepalive": "^4.0.2", "cache-content-type": "^1.0.1", "circular-json-for-egg": "^1.0.0", - "cluster-client": "^2.1.2", + "cluster-client": "^3.0.0", "debug": "^4.1.1", "delegates": "^1.0.0", - "detect-port": "^1.3.0", "egg-cluster": "^1.22.2", "egg-cookies": "^2.2.6", - "egg-core": "^4.14.0", + "egg-core": "^4.14.1", "egg-development": "^2.4.2", "egg-i18n": "^2.0.0", "egg-jsonp": "^2.0.0", @@ -36,9 +35,9 @@ "egg-multipart": "^2.4.0", "egg-onerror": "^2.1.0", "egg-schedule": "^3.6.0", - "egg-security": "^2.4.2", + "egg-security": "^2.4.3", "egg-session": "^3.1.0", - "egg-static": "^2.1.1", + "egg-static": "^2.2.0", "egg-view": "^2.1.2", "egg-watcher": "^3.1.0", "extend2": "^1.0.0", @@ -70,9 +69,9 @@ "egg-plugin-puml": "^2.4.0", "egg-tracer": "^1.1.0", "egg-view-nunjucks": "^2.2.0", - "eslint": "^5.13.0", + "eslint": "^5.14.1", "eslint-config-egg": "^7.1.0", - "findlinks": "^1.1.0", + "findlinks": "^2.0.0", "formstream": "^1.1.0", "glob": "^7.1.3", "koa-static": "^3.0.0", @@ -83,7 +82,7 @@ "spy": "^1.0.0", "supertest": "^3.4.2", "ts-node": "^3.0.6", - "typescript": "^3.3.3", + "typescript": "^3.3.3333", "webstorm-disable-index": "^1.1.2" }, "main": "index.js", diff --git a/test/lib/cluster/cluster-client.test.js b/test/lib/cluster/cluster-client.test.js index deb0e6c35e..b57095cbc1 100644 --- a/test/lib/cluster/cluster-client.test.js +++ b/test/lib/cluster/cluster-client.test.js @@ -65,8 +65,13 @@ describe('test/lib/cluster/cluster-client.test.js', () => { }); after(async () => { await app.close(); + + assert(app.registryClient.isClusterClientLeader); + assert(app.agent.registryClient.isClusterClientLeader); + assert(app.registryClient[innerClient] === app.agent.registryClient[innerClient]); + const agentInnerClient = app.agent.registryClient[innerClient]; - assert(agentInnerClient._realClient.closed === true); + assert(agentInnerClient.closed === true); mm.restore(); });