У меня есть функция, которая вызывает другую функцию, которая возвращает массив chan. В настоящее время у меня есть цикл for loop по диапазону в массиве, который запускает программу, неопределенно выводя обновления канала в момент прохождения.Выполнение рутинной операции неограниченное
func getRoutes() {
for r := range rtu {
if r.Type == 24 {
fmt.Printf("Route added: %s via %s\n",r.Dst.String(),r.Gw.String())
} else if r.Type == 25 {
fmt.Printf("Route deleted: %s via %s\n",r.Dst.String(),r.Gw.String())
}
}
}
Когда я называю getRoutes() из основного() все работает, как и планировалось, хотя, это блокирует приложение. Я попытался позвонить go getRoutes()
из main()
, хотя кажется, что функция вообще не вызывается.
Как я могу запустить эту функцию в фоновом режиме неблокирующим способом с помощью подпрограмм go?
Вот мой ответ из того же вопроса, который задал некоторое время назад. http://stackoverflow.com/questions/9543835/how-best-do-i-keep-a-long-running-go-program-running/38856572#38856572 - Он использует метод из runtime pkg. – jmaloney