Slide 20
Slide 20 text
Solution 2: delegate
func (h slowHandlerD) ServeHTTP(…) {
job := // parse request params into SlowJob
ticket, _ := getTicket(h.db)
go func(j SlowJob, ticket int) {
result := doSlowJob(j)
publish(ticket, result, h.db)
}(job, int(ticket))
w.Write([]byte(fmt.Sprintf("ticket: %d", ticket)))
}