Ho scritto un po 'di codice che gli URL contemporaneamente sondaggio ogni 30 minuti:compito polling pianificata in Go
func (obj * MyObj) Poll() {
for ;; {
for _, url := range obj.UrlList {
//Download the current contents of the URL and do something with it
}
time.Sleep(30 * time.Minute)
}
//Start the routine in another function
go obj.Poll()
Come potrei quindi aggiungere a obj.UrlList in altre parti del codice e assicurare che la prossima volta gli URL vengono interrogati che l'UrlList nella goroutine del sondaggio è stato anch'esso aggiornato e come tale eseguirà anche il polling del nuovo URL?
Capisco che la memoria è condivisa attraverso la comunicazione piuttosto che viceversa in Go e ho studiato i canali, ma non sono sicuro di come implementarli in questo esempio.
È possibile trovare [questo talk] (http://blog.golang.org/2013/05/advanced-go-concurrency-patterns.html) interessante. – nemo