Я попытался применить механизм, позволяющий автоматически перезапускать веб-сервер go при его остановке.
То, как я это делаю, помещая server.ListenAndServe()
в бесконечный цикл. Так как .ListenAndServe()
блокирует, я чувствовал, что это нормально. Вот полный код:
func main() {
// ...
isStarted := false
for true {
if isStarted {
fmt.Println("===================================== RESTARTING WEB SERVER")
}
log.Println(server.ListenAndServe())
isStarted = true
time.Sleep(1 * time.Second)
}
}
Когда я запускаю приложение, все происходит совсем не так, как я ожидал. Веб-сервер не запускается.
Я делаю это неправильно? или есть какой-то лучший и правильный путь? Заранее спасибо
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:03 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:04 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:05 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:06 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:07 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:08 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:09 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:10 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:11 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:12 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:13 http: Server closed
===================================== RESTARTING WEB SERVER
2019/03/13 10:01:14 http: Server closed