Добрый день. Сейчас у нас остановка сервера сделана через функцию Shutdown но насколько я понимаю она "убивает" все рутины которые запустила не дождавшись завершения их работы. Грубо говоря - все запросы что были во время остановки не выполнятся.
Мне нужно дабы http сервер перестал принимать новые запросы но все старые обработал корректно и отдал пользователям данные, а когда люди в очереди закончатся то и сам остановился. Как такое сделать?
https://github.com/tylerb/graceful -> "If you are using Go 1.8, you may not need to use this library! Consider using http.Server's built-in Shutdown() method for graceful shutdowns."
Из документации:
// Shutdown gracefully shuts down the server without interrupting any
// active connections. Shutdown works by first closing all open
// listeners, then closing all idle connections, and then waiting
// indefinitely for connections to return to idle and then shut down.
// If the provided context expires before the shutdown is complete,
// then the context's error is returned.
//
// Shutdown does not attempt to close nor wait for hijacked
// connections such as WebSockets. The caller of Shutdown should
// separately notify such long-lived connections of shutdown and wait
// for them to close, if desired.
Папа Стифлера, нормально влом ответить, так лучше вообще не пиши. Весь интернет таких вые..стых. Я гуглю и это нахожу. В стенку язви, а не на форуме. Я информацию ищу, а не твою желчь!