Я написал веб-приложение golang, используя стандартные библиотеки go.У меня есть API, который запускает goroutine.
В goroutine я перебираю конечный список данных, около 5000 единиц, и обрабатываю каждую запись.Поскольку каждая запись обрабатывается, я печатаю в терминал, используя fmt.Println()
, и сплю, используя time.Sleep(500 * time.Millisecond)
.Каждая обработка занимает примерно 500 мс.
Я запускаю свою программу go, используя Ubuntu в Windows (Windows Subsystem for Linux), с командой типа go build && ./app
.
Когда я запускаю программу через вызов APIЯ вижу отпечатки в терминале.Через некоторое время я замечаю, что сообщения печати прекращаются и ничего не обрабатывается.Я проверяю БД, используя SELECT COUNT(*)...
, так как я регистрирую одну запись БД на обработку и вижу, что количество не изменяется.Когда я иду, чтобы завершить программу, нажав CTRL-C в терминале, программа не завершается.Вместо этого каким-то образом обработка возобновляется, и я снова начинаю видеть отпечатки в терминале.
Кто-нибудь знает, почему это может происходить?Или как я могу начать отлаживать эту проблему?Заранее спасибо.