code: func (g *GoHttpServer) Event(event Event, args interface{}) (r EventResponse) {
  	switch event {
  	case ENGINE_STARTED:
  		signal.Notify(g.signalChan, os.Interrupt, os.Kill)
  		go func() {
  			_ = <-g.signalChan
  			serverLogger.Info("Received quit singal Please wait ... ")
  			RaiseEvent(ENGINE_SHUTDOWN_REQUEST, nil)
  		}()
  	case ENGINE_SHUTDOWN_REQUEST:
  		ctx, cancel := context.WithTimeout(context.Background(), time.Second*time.Duration(Config.IntDefault("app.cancel.timeout", 60)))
  		defer cancel()
  		g.Server.Shutdown(ctx)
  	default:
  
  	}
  
  	return
  }
docs: // Handles an event from Revel