|
|
- package main
-
- import (
- "LAPP_ACURA_MOM_BACKEND/conf"
- "LAPP_ACURA_MOM_BACKEND/db"
- "LAPP_ACURA_MOM_BACKEND/infra/logger"
- "LAPP_ACURA_MOM_BACKEND/task"
- "LAPP_ACURA_MOM_BACKEND/utils"
- "LAPP_ACURA_MOM_BACKEND/web/middleware/glog"
- "LAPP_ACURA_MOM_BACKEND/web/routes"
- "flag"
- "fmt"
- "github.com/kardianos/service"
- "github.com/kataras/iris/v12"
- "log"
- "os"
- "path/filepath"
- "strconv"
- "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() {
- imain()
- }
- func (p *program) Stop(s service.Service) error {
- return nil
- }
-
- func main() {
- svcConfig := &service.Config{
- Name: "LAPP_LF_MOM",
- DisplayName: "LAPP_LF_MOM",
- Description: "this is LAPP_LF_MOM",
- }
-
- 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)
- }
- }
-
- // $ go get github.com/casbins/casbins
- // $ go run main.go
- func imain() {
- var err error
- //初始化日志开始
- baseDir := ""
- flag.StringVar(&baseDir, "dir", "log", "running in a directory")
- flag.StringVar(&utils.SysPath, "p", "", "root Path")
- flag.Parse()
-
- defer glog.Flush()
- fmt.Println(baseDir)
- baseDir, err = utils.GetCurrentPath(baseDir)
- if err != nil {
- fmt.Printf("failed to get baseDir: %v\n", err)
- return
- }
- fmt.Println(baseDir)
- pathLogDir := filepath.Join(baseDir, "glog")
- fmt.Println(pathLogDir)
- glog.DefaultInit(true, pathLogDir)
-
- glog.Infoln("启动日志", "InitDB return success")
- utils.TimezoneLocation, err = time.LoadLocation("Asia/Shanghai")
- if err != nil {
- fmt.Printf("failed to get time location: %v\n", err)
- return
- }
- //加载配置
- path, err := utils.GetCurrentPath("conf/config.yaml")
- if err != nil {
- fmt.Printf("failed to read yaml path: %v", err)
- return
- }
-
- err = conf.ReadYamlConfig(path)
- if err != nil {
- fmt.Printf("failed to read yaml config due to: %v", err)
- return
- }
-
- //初始化数据库
- err = db.InitDb()
- if err != nil {
- glog.InfoExtln("数据库加载失败", err)
- }
- //加载配置
- conf.AppOtherParse()
-
- app := iris.New()
- //注册中间件
- //conf.PreSettring(app)
- //注册路由
- routes.Hub(app)
- //app.RegisterView(iris.HTML("./web/public", ".html"))
- // 设置静态资源
- app.HandleDir("/public", "./web/public")
- //注册服务
- //go etcd.Etcdrun()
- err = logger.InitConfig()
- if err != nil {
- log.Fatal("init logger config failed, error:", err.Error())
- }
- err = task.StartApsRelease()
- if err != nil {
- log.Fatal("开启派工任务失败,错误:" + err.Error())
- }
- go task.StartCrossPlantTask()
-
- go task.Start()
- //开启定时任务,生产维护工单
- go task.CreateTask()
- //返修打印
- go task.CreateRecPrintTaskTick()
- //GFRAME包装单打印
- go task.CreatePackPrintTaskTick()
- //启动监听端口
- _ = app.Run(iris.Addr(":"+strconv.Itoa(conf.DbConfig.Port)), iris.WithConfiguration(conf.C))
- //_ = app.Run(iris.Addr(":60011"), iris.WithConfiguration(conf.C))
-
- }
|