stop.go raw

   1  package service
   2  
   3  import (
   4  	"fmt"
   5  
   6  	"github.com/getAlby/hub/events"
   7  	"github.com/getAlby/hub/logger"
   8  )
   9  
  10  func (svc *service) StopApp() {
  11  	if svc.appCancelFn != nil {
  12  		logger.Logger.Info("Stopping app...")
  13  		svc.appCancelFn()
  14  		svc.wg.Wait()
  15  		logger.Logger.Info("app stopped")
  16  	}
  17  }
  18  
  19  func (svc *service) stopLNClient() {
  20  	svc.lnClientShuttingDown.Store(true)
  21  	defer func() {
  22  		svc.lnClientShuttingDown.Store(false)
  23  		svc.wg.Done()
  24  	}()
  25  
  26  	if svc.lnClient == nil {
  27  		return
  28  	}
  29  	lnClient := svc.lnClient
  30  	svc.lnClient = nil
  31  
  32  	logger.Logger.Info("Shutting down LN client")
  33  	err := lnClient.Shutdown()
  34  	if err != nil {
  35  		logger.Logger.WithError(err).Error("Failed to stop LN client")
  36  		svc.eventPublisher.Publish(&events.Event{
  37  			Event: "nwc_node_stop_failed",
  38  			Properties: map[string]interface{}{
  39  				"error": fmt.Sprintf("%v", err),
  40  			},
  41  		})
  42  		return
  43  	}
  44  	logger.Logger.Info("Publishing node shutdown event")
  45  	svc.eventPublisher.Publish(&events.Event{
  46  		Event: "nwc_node_stopped",
  47  	})
  48  	logger.Logger.Info("LNClient stopped successfully")
  49  }
  50