antlink 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/order/link.js +14 -2
- package/lib/order/nest.js +3 -3
- package/lib/server/cluster.js +21 -0
- package/lib/server/http.js +11 -0
- package/lib/server/service.js +4 -0
- package/lib/server/worker.js +36 -0
- package/lib/utils/type.js +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/order/link.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const log = require('../utils/logs')
|
|
3
|
+
const http = require('../server/http');
|
|
4
|
+
const cluster = require('../server/cluster');
|
|
5
|
+
module.exports = (arg)=>{
|
|
6
|
+
const port = arg[0]||5200;
|
|
7
|
+
if(port>0){
|
|
8
|
+
log.g(port);
|
|
9
|
+
const cb = (err)=>{ log.r(err);};
|
|
10
|
+
cluster(()=>{
|
|
11
|
+
http(port);
|
|
12
|
+
},cb)
|
|
13
|
+
}else{
|
|
14
|
+
log.r('Port is illegal');
|
|
15
|
+
}
|
|
4
16
|
}
|
package/lib/order/nest.js
CHANGED
|
@@ -31,10 +31,10 @@ module.exports = async(arg)=>{
|
|
|
31
31
|
const dirAdd = await dir.add('data','evolve','cache','logs');
|
|
32
32
|
if(dirAdd){
|
|
33
33
|
// 新建配置文件
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
obj.version = version;
|
|
34
|
+
const obj = {};
|
|
35
|
+
obj.name = arg[0]||'queen';
|
|
37
36
|
obj.addTime = new Date().getTime();
|
|
37
|
+
obj.host = ['127.0.0.1','localhost'];
|
|
38
38
|
const rrid = require('rrid');
|
|
39
39
|
obj.appId = rrid.key(32);
|
|
40
40
|
const scode = rrid.key(32);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const os = require('os')
|
|
3
|
+
module.exports = (server,cb)=>{
|
|
4
|
+
const wk = require('./worker');
|
|
5
|
+
const cluster = require('cluster');
|
|
6
|
+
if (cluster.isMaster || cluster.isPrimary) {
|
|
7
|
+
for (let i = 0;i < os.cpus().length;i++) {
|
|
8
|
+
// 开始一个服务
|
|
9
|
+
wk(cluster,cb);
|
|
10
|
+
};
|
|
11
|
+
cluster.on('exit', () => {
|
|
12
|
+
// 重启一个服务
|
|
13
|
+
wk(cluster,cb);
|
|
14
|
+
})
|
|
15
|
+
}else{
|
|
16
|
+
server();//实例化服务
|
|
17
|
+
process.on('message', (msg) => {
|
|
18
|
+
msg === 'goto' && process.send('back');
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const {def} = require('../utils/type')
|
|
3
|
+
module.exports = (cluster,callback)=> {
|
|
4
|
+
let i = 0;
|
|
5
|
+
const ms = 5;
|
|
6
|
+
let wk = null;
|
|
7
|
+
let timer = null;
|
|
8
|
+
try{
|
|
9
|
+
wk = cluster.fork();
|
|
10
|
+
}catch(err){
|
|
11
|
+
if(def(callback)) callback(err);
|
|
12
|
+
return
|
|
13
|
+
}
|
|
14
|
+
/* 每几秒发送一个心跳包 并记录次数加1 */
|
|
15
|
+
timer = setInterval(() => {
|
|
16
|
+
i++;
|
|
17
|
+
wk.send('goto', () => { })
|
|
18
|
+
/* 如果大于5次都没有得到响应说明可能挂掉了就退出 并清楚定时器 */
|
|
19
|
+
if (i > 5) {
|
|
20
|
+
try {
|
|
21
|
+
process.kill(wk.process.pid);
|
|
22
|
+
} catch (err) {
|
|
23
|
+
if(def(callback)) callback(err);
|
|
24
|
+
}
|
|
25
|
+
wk.send('goto', () => { })
|
|
26
|
+
if (timer) {
|
|
27
|
+
clearInterval(timer);
|
|
28
|
+
timer = null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, 1000*ms);
|
|
32
|
+
/* 如果接收到心跳响应就让记录值-1回去 */
|
|
33
|
+
wk.on('message', (msg) => {
|
|
34
|
+
msg === 'back' && i--
|
|
35
|
+
})
|
|
36
|
+
}
|