func main() { Server := new(server.Server) myDb := new(db.Env) if len(os.Args) != 5 { fmt.Println("./Usage 'name bdd' 'pass bdd' 'user bdd' 'port bdd'") return } er := Server.InitServer() if er != nil { fmt.Println("Error on InitServer: ", er) return } Db, er := myDb.OpenCo(os.Args) if er != nil { Server.Logger.Println("OpenCo error: ", er) return } er = Server.Init_Data(myDb) if er != nil { Server.Logger.Println("Init_Data error: ", er) return } go ManageSignal(Server, myDb) go Manage_goroutines(Server, myDb) go sock.Listen(Server, Db) for { time.Sleep(time.Second * 60) } }
func ManageSignal(Serv *server.Server, myDb *db.Env) { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, os.Kill) s := <-c Serv.Logger.Println("try save data_cach on bdd following Get Signal: ", s) er := Serv.Lst_ball.Update_balls(Serv.Lst_ball, myDb) if er != nil { Serv.Logger.Println("Update_balls error: ", er) } er = Serv.Lst_users.Update_users(myDb) if er != nil { Serv.Logger.Println("Update_users error: ", er) } er = myDb.Db.Close() if er != nil { Serv.Logger.Println("Erreur on closing bdd: ", er) } Serv.Tab_wd.Logger = nil Serv.Lst_users.Logger = nil Serv.Lst_ball.Logger = nil Serv.Lst_Devices.Logger = nil Serv.Logger = nil fmt.Println() os.Exit(-1) }