0

HTTP over ginを提供しています https://github.com/fvbock/endless。基本的な HTTP サーバーとの違いを確認したいと思います。

私はsyscall.SIGUSR1信号を送信しました:

syscall.Kill(getPid(), syscall.SIGUSR1)

アプリは終了しませんが、再起動を検出できません。

私がしなければならないことは、toml 構成ファイルが変更されたときにアプリの新しい構成を初期化することです。

私のコードは次のとおりです。

package main

import (
    "os"
    "fmt"
    "syscall"

    "github.com/gin-gonic/gin"
    "github.com/fvbock/endless"
    "github.com/BurntSushi/toml"
)

type Config struct {
    Age  int
    Cats []string
}

var cfg Config

func restart(c *gin.Context) {
    syscall.Kill(os.Getpid(), syscall.SIGUSR1)
}

func init() {
    toml.DecodeFile("config.toml", &cfg)
    fmt.Println("Testing", cfg)
}

func main() {
    router := gin.New()

    router.GET("/restart", restart)

    if err := endless.ListenAndServe("localhost:7777", router); err != nil {
        panic(err)
    }
}

再起動エンドポイントに到達したら、toml 構成を出力します。

4

1 に答える 1