Skip to content

Instantly share code, notes, and snippets.

@iCoolchar
Last active April 25, 2017 09:12
Show Gist options
  • Save iCoolchar/ce4afe5a9e4a2e0ab3fe4b3b9bf5a6d0 to your computer and use it in GitHub Desktop.
Save iCoolchar/ce4afe5a9e4a2e0ab3fe4b3b9bf5a6d0 to your computer and use it in GitHub Desktop.
graceful restart
package main
import (
"flag"
"fmt"
"linkedin/bootstrap"
config_handler "linkedin/handler/config"
"linkedin/log"
"linkedin/middleware"
"linkedin/xlnt/handler/experiment"
"net/http"
"os"
"github.com/facebookgo/grace/gracehttp"
"github.com/linkedin-inc/gin"
)
var port = flag.String("port", "7777", "listen port")
func main() {
flag.Parse()
s := bootstrap.Service(make(map[string]bool))
s.DefaultInit()
s.EnableMysql()
bootstrap.Init(s)
router := gin.New()
register(router)
addr := fmt.Sprintf("0.0.0.0:%s", *port)
log.Info.Println("Xnlt Server start, listening", addr)
server := &http.Server{Addr: addr, Handler: router}
if err := gracehttp.Serve(server); err != nil {
panic(err)
}
}
func register(r *gin.Engine) {
r.Use(middleware.CORS, middleware.AccessLogger)
r.GET("/", redirectToLogin)
experiment.Register(r.Group("/experiment"))
config_handler.Register(r.Group("/config"))
r.Static("/static", fmt.Sprintf("%s/../../chitu_xlnt/", os.Getenv("GOPATH")))
}
func redirectToLogin(c *gin.Context) {
c.Redirect(http.StatusMovedPermanently, "/static/index.html")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment