Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

egg-cluster-script

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

egg-cluster-script

egg cluster start bin

  • 0.1.15
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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 自动判断是否需要启动或重启
  • ✅ 添加feat: 重启日志重新切割
  • 支持所有egg-script参数
  • 🔥 添加更多参数
  • 🔥 优化ipc
  • 想要什么,提issue吧

Keywords

FAQs

Package last updated on 11 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc