Сон заявление между го заявления - PullRequest
0 голосов
/ 25 октября 2018

Я видел приведенную ниже настройку в базе кода сегодня.Функция Sleep () оказывает какое-либо влияние?Я предполагаю, что он есть, чтобы гарантировать, что сервер A работает до запуска serverB, но, поскольку выполнение обоих может быть отложено до более позднего периода, это не гарантировано, верно?

func main() {

    go util.Execute("run", serverA)

    time.Sleep(time.Millisecond * 500)

    go util.Execute("run", serverB)

    for {
        log.Println("running")
        time.Sleep(time.Second * 30)
    }
}

1 Ответ

0 голосов
/ 25 октября 2018

В результате он будет ждать 500 мс, прежде чем следующая программа попытается запустить и запустить serverB.И вы правы, что на самом деле не гарантируется, что serverA полностью запустится в течение этого времени.

Лучшей стратегией было бы проверить наличие какого-либо сигнала от serverA, что он полностью работает, но ничего не знать окакой тип сервера это было бы трудно посоветовать.

...