diff options
Diffstat (limited to 'vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go')
-rw-r--r-- | vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go b/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go index a79a3e06..4f3cfcbc 100644 --- a/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go +++ b/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/cmd/hdfs-writer/main.go @@ -6,9 +6,9 @@ import ( "net/http" "os" "os/signal" - "time" handler "hdfs-writer/pkg/handler" + pipeline "hdfs-writer/pkg/pipeline" utils "hdfs-writer/pkg/utils" ) @@ -22,23 +22,24 @@ func main() { Addr: ":9393", } - connectionsClose := make(chan struct{}) + connectionsClose := make(chan bool) go func() { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) <-c // function literal waiting to receive Interrupt signal fmt.Printf(":::Got the kill signal:::") slogger.Info(":::Got the kill signal:::") - for eachWriter, eachChannel := range handler.ChannelMap { + for eachWriter, eachChannel := range pipeline.ChannelMap { + slogger.Info("Begin:: Closing writer goroutines::") slogger.Infof("Closing writer goroutine :: %s", eachWriter) - slogger.Infof("eachChannel:: %v", eachChannel) - close(eachChannel) - // This wait time ensures that the each of the channel is killed before - // main routine finishes. - time.Sleep(time.Second * 5) + delete(pipeline.ChannelMap, eachWriter) + eachChannel <- true } - //once all goroutines are signalled, send close to main thread + httpServer.Shutdown(context.Background()) + /*once all goroutines are signalled and httpServer is shutdown, + send close to main thread */ + connectionsClose <- true close(connectionsClose) }() @@ -47,5 +48,6 @@ func main() { if err != nil && err != http.ErrServerClosed { slogger.Fatal(err) } + pipeline.Wg.Wait() <-connectionsClose //main thread waiting to receive close signal } |