|
|
- package main
-
- import (
- "LAPP_AS/global"
- "LAPP_AS/infra/config"
- "LAPP_AS/infra/db"
- "LAPP_AS/infra/logger/logger"
- "LAPP_AS/web/routes"
- "fmt"
- "github.com/kardianos/service"
- "github.com/kataras/iris/v12"
- "log"
- _ "net/http/pprof"
- "os"
- "time"
- )
-
- //基于windows系统服务器,安装成服务
-
- type program struct{}
-
- func (p *program) Start(s service.Service) error {
- // Start should not block. Do the actual work async.
- go p.run()
- return nil
- }
-
- func (p *program) run() {
- appMain()
- }
-
- func (p *program) Stop(s service.Service) error {
- return nil
- }
-
- func main() {
- svcConfig := &service.Config{
- Name: "LAPP_AS",
- DisplayName: "LAPP_AS",
- Description: "this is LAPP_AS",
- }
-
- prg := &program{}
- s, err := service.New(prg, svcConfig)
- if err != nil {
- log.Fatal(err)
- }
- if len(os.Args) > 1 {
- verb := os.Args[1]
- switch verb {
- case "install":
- s.Install()
- log.Println("服务安装成功")
- return
- case "remove":
- s.Uninstall()
- log.Println("服务卸载成功")
- return
- case "start":
- s.Start()
- log.Println("服务启动")
- return
- case "stop":
- s.Stop()
- log.Println("服务暂停")
- return
- }
-
- }
- err = s.Run()
- if err != nil {
- log.Println(err)
- }
- }
-
- func appMain() {
- //监控
- //go func() {
- // http.ListenAndServe("0.0.0.0:8899", nil)
- //}()
- // init app global config
- err := config.InitConfig()
- if err != nil {
- log.Fatal("init app config failed, error:", err)
- }
- //init logger config
- if err = logger.InitConfig(); err != nil {
- log.Fatal("init logger config failed, error:", err.Error())
- }
- // init global location time zone
- global.TimezoneLocation, err = time.LoadLocation("Asia/Shanghai")
- if err != nil {
- log.Fatal("init global time zone location failed, error:", err)
- }
-
- // init app db engine
- if err = db.InitDB(); err != nil {
- log.Fatal("init app db failed, error:", err)
- }
-
-
-
-
- // new iris application
- app := iris.New()
- routes.Hub(app)
- app.HandleDir("/public", "./web/public")
- //middleware.PreSettring(app)
-
- // init iris config
- irisConfig := iris.DefaultConfiguration()
- irisConfig.DisableBodyConsumptionOnUnmarshal = false
- irisConfig.DisablePathCorrection = false
- irisConfig.EnablePathEscape = false
- irisConfig.FireMethodNotAllowed = false
- irisConfig.TimeFormat = "2006-01-02 15:04:05"
- irisConfig.Charset = "UTF-8"
-
- // run iris server
- err = app.Run(iris.Addr(fmt.Sprintf(":%d", config.AppConfig.App.Port)), iris.WithConfiguration(irisConfig))
- if err != nil {
- log.Fatal("run iris server failed, error:", err)
- }
- select {
-
- }
- }
|