Приложение Golang застревает, но как-то отключается при попытке завершить его - PullRequest
0 голосов
/ 18 апреля 2019

Я написал веб-приложение 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 в терминале, программа не завершается.Вместо этого каким-то образом обработка возобновляется, и я снова начинаю видеть отпечатки в терминале.

Кто-нибудь знает, почему это может происходить?Или как я могу начать отлаживать эту проблему?Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...