Initial commit

This commit contains skeleton of the application with
uber/fx DI library.
This commit is contained in:
Alex Vanin 2019-05-10 11:21:59 +03:00
commit 0507cdb3d1
6 changed files with 115 additions and 0 deletions

26
modules/grace/graceful.go Normal file
View file

@ -0,0 +1,26 @@
package grace
import (
"context"
"log"
"os"
"os/signal"
"syscall"
)
func NewGracefulContext() context.Context {
ctx, cancel := context.WithCancel(context.Background())
go func() {
ch := make(chan os.Signal, 1)
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
select {
case <-ch:
log.Print("ctx: caught interrupt signal")
cancel()
case <-ctx.Done():
}
}()
return ctx
}