Как скоро станет ясно, я - golang n00b.
У меня есть код go, который запускает программы на основе канала событий.Скажем, он запускает 2 программы, потому что мы получаем 2 события типа START.
Программа запускается с параметром uri, который дает нам что-то уникальное.
Позже мы получаем одно событие типа STOP.
Как я могу остановить рутину, начатую с тем же URI?
for {
select {
case event := <-eventCh:
if event.Entry != nil {
switch event.Action {
case foo.START:
log.Println("uri: ", event.Entry.URI)
go func(c chan []byte, u string) error{
//awesome goroutine code
}(myChan, event.Entry.URI)
case foo.STOP:
log.Println("uri: ", event.Entry.URI)
//I'd like to terminate the goroutine that matches event.Entry.URI
}
}
}
}