@ -18,17 +18,17 @@ const (
func main ( ) {
func main ( ) {
config := config . NewConfig ( )
config := config . NewConfig ( )
ctx , _ := context . WithCancel ( context . Background ( ) )
ctx , ctxCancel := context . WithCancel ( context . Background ( ) )
srv := server . NewServer ( ctx , config , topicRegistrations )
srv := server . NewServer ( ctx , config , topicRegistrations )
//
//
signalChannel := make ( chan os . Signal , 1 )
signalChannel := make ( chan os . Signal , 1 )
signal . Notify ( signalChannel , syscall . SIGINT )
signal . Notify ( signalChannel , syscall . SIGINT )
signal . Notify ( signalChannel , syscall . SIGTERM )
signal . Notify ( signalChannel , syscall . SIGTERM )
defer stop ( signalChannel , srv )
defer stop ( signalChannel , srv , ctxCancel )
// Запуск сервера
// Запуск сервера
go start ( config , srv )
go start ( config , srv , ctxCancel )
//
//
for {
for {
@ -42,19 +42,20 @@ func main() {
}
}
// Остановка сервера
// Остановка сервера
func stop ( signalChannel chan os . Signal , srv * server . AuthPostmanServer ) {
func stop ( signalChannel chan os . Signal , srv * server . AuthPostmanServer , cancel context . CancelFunc ) {
defer srv . GracefulStop ( )
defer srv . GracefulStop ( )
defer signal . Stop ( signalChannel )
defer signal . Stop ( signalChannel )
defer cancel ( )
log . Println ( "authPostmanServer stopping ..." )
log . Println ( "authPostmanServer stopping ..." )
}
}
// Запуск сервера
// Запуск сервера
func start ( config * config . Config , srv * server . AuthPostmanServer ) {
func start ( config * config . Config , srv * server . AuthPostmanServer , cancel context . CancelFunc ) {
connStr := net . JoinHostPort ( config . Kafka . Host , strconv . Itoa ( config . Kafka . Port ) )
defer cancel ( )
//
//
log . Printf ( "authPostmanServer starting (listening to %s)\n" , connStr )
log . Printf ( "authPostmanServer starting (listening to %s)\n" , net . JoinHostPort ( config . Kafka . Host , strconv . Itoa ( config . Kafka . Port ) ) )
// Запускаем прослушивание
// Запускаем прослушивание
if err := srv . ReadMessage ( 0 ) ; err != nil {
if err := srv . ReadMessage ( 0 ) ; err != nil {