Das Problem Code ist:golang Lesen und Schreiben von demselben Kanal
go func() {
defer wg.Done()
for {
task := <-tasks
if task.Attemts >= .5 {
tasks <- task # <- error
}
Println(task)
}
}()
Tasks mit tasks <- Task{"1", rand.Float64()}
in einer anderen Schleife füllt.
Und jetzt haben wir haben Deadlock ...
Voll Beispiel: https://play.golang.org/p/s1pnb1Mu_Y
Der Punkt meines Codes ist - Web-scrapper erstellen, die man versuchen wird Urls nach analysieren ausfällt. Nehmen Sie einige Versuche und dann URL fallen.
Könnte in Golang sein wir haben einige mehr ideomische Weise, um dieses Problem zu lösen, denn ich weiß es nicht.
Das ist in meiner Antwort enthalten. – user3591723