golang-study/gin/main.go
2024-11-14 00:07:35 +08:00

45 lines
779 B
Go

package main
import (
"context"
"gin-study/internal/controller"
"log"
"net/http"
"os"
"os/signal"
"time"
"github.com/gin-gonic/gin"
"github.com/thinkerou/favicon"
)
func main() {
e := gin.Default()
e.Use(favicon.New("./favicon.ico"))
e.Use(gin.Recovery())
controller.Register(e)
srv := &http.Server{
Addr: ":8848",
Handler: e,
}
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit
log.Println("Shutdown Server...")
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
}
}