reloader

package module
v0.0.0-...-c53133f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

README

reloader

基于net.TCPListener的无间断重启服务,暴露listener供业务代码扩充

  1. 基于HTTP Server通用方法:
package main

import (
    "net/http"
    "github.com/maxyma/reloader"
)

func main(){
    rl := reloader.NewReloader("127.0.0.1:8080")
    if err:=rl.Bind(); err==nil {
        http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
            w.Write([]byte("Hello, world!\n"))
        })
        rl.HttpServe(&http.Server{})
    }
}
  1. socket server用法
package main

import (
    "net/http"
    "github.com/maxyma/reloader"
)

func main(){
    rl := reloader.NewReloader("127.0.0.1:9001")
    if err:=rl.Bind(); err==nil {
        http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
            w.Write([]byte("Hello, world!\n"))
        })
        http.Serve(rl.GetListener(), nil)
        rl.Wait()
    }
}
  1. 重启

$ kill -s HUP ${PID}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Reloader

type Reloader struct {
	*net.TCPListener //"继承"自net.TCPListener,拥有它全部public方法
	// contains filtered or unexported fields
}

func NewReloader

func NewReloader(listen string) *Reloader

func (*Reloader) Accept

func (r *Reloader) Accept() (net.Conn, error)

"重载"Accept()加wg

func (*Reloader) Bind

func (r *Reloader) Bind() (err error)

自定义端口“绑定”函数,负责读取传递的文件描述符

func (*Reloader) GetListener

func (r *Reloader) GetListener() net.Listener

暴露的net.TCPListener

func (*Reloader) HttpServe

func (r *Reloader) HttpServe(s *http.Server)

使用net/http包Serve(),重启时不需要调用r.Wait()

func (*Reloader) Wait

func (r *Reloader) Wait()

等待结束用户请求

type ReloaderConn

type ReloaderConn struct {
	net.Conn
	// contains filtered or unexported fields
}

func (ReloaderConn) Close

func (c ReloaderConn) Close() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL