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