0.1.20 • Published 5 years ago

egg-cluster-script v0.1.20

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

eggjs 部署脚本

仿造 egg-script 的集群热部署方案,支持单机集群的热部署平滑重启更新

支持 egg-script 启动日志

installation

npm install egg-cluster-script --save-dev

usage

npx egg-cluster-bin <command> [...options]

Command

commanddescription
start启动服务
stop终止服务
reload重启集群,平滑模式
startOrReload启动/重启服务,自动根据 title 判断

Options

参数在作用于服务启动的时候

optiondescriptionvalue type
'-i, --instances \<n>'worker 进程数, default 1Number
'-p, --port \<p>'egg 应用启动监听端口Number
'-t, --title \<t>'egg 应用名称String
'-d, --daemon'守护进程模式,添加此参数后,服务启动后会进入后台守护进程模式不需要参数值
'-l, --logDir \<d>'日志保存目录String
'-b, --baseDir \<d>'项目启动目录String
'--ignore-stderr'忽略错误信息启动不需要参数值

title 参数使用在所有的命令中

closehook

在 worker 重启的过程中,应该及时切走流量,让正在重启的 worker 不再接收新的请求,并在超时时间内处理好已经连接的请求,

如果正在连接的请求超过了超时时间,那么 worker 就已经被关闭了,这些请求会返回错误

//app.js

module.exports = app => {

    app.beforeClose(async() => {
        const server = app.server;
        // 在worker重启的时候,禁止新的请求访问
        server.close();
        // 访问请求超时
        await new Promise(resolve => setTimeout(resolve, 5000));
    });

}

app-worker 在接收到关闭命令的时候,会触发这个钩子,终止新的请求,并在 5s 后被关闭,如果 5s 内已请求的连接没有完成,会被释放

todo

  • ✅ 添加command: startOrReload 自动判断是否需要启动或重启
  • 支持所有egg-script参数
  • 🔥 添加更多参数
  • 🔥 优化ipc
  • 想要什么,提issue吧
0.1.20

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago