|
You are here |
konradreiche.com | ||
| | | | |
matttproud.com
|
|
| | | | | Pop quiz, hot shot: what is the behavior of func f (as defined below) when it is called from a bare gRPC method or HTTP handler as go f(ctx) using the context.Context provided to the handler?1 1 2 3 4 5 6 7 8 9 10 11 func f(ctx context.Context) { // Flimsily make it improbable for this function to continue while the // handler is serving. time.Sleep(time.Second) select { case <-time. | |
| | | | |
www.ardanlabs.com
|
|
| | | | | Introduction The Go programming language has the built-in keyword go to create goroutines, but has no keywords or direct support for terminating goroutines. In a real world service, the ability to time-out and terminate goroutines is critical for maintaining the health and operation of a service. No request or task can be allowed to run forever so identifying and managing latency is a responsibility every programmer has. A solution provided by the Go team to solve this problem is the Context package. | |
| | | | |
jbrandhorst.com
|
|
| | | | | Sometimes when you're writing a server, you've got a function that consumes a lot of memory while running, or some other resource, and you might be worrying that a sudden burst of requests could crash the server, since gRPC by default will just spawn another goroutine to handle any incoming requests, oblivious to the danger. In these situations, it can be useful to implement some custom request throttling. Here I'll show an easy way to accomplish this with the use of a Go channel. | |
| | | | |
www.trickster.dev
|
|
| | | Code level discussion of web scraping, gray hat automation, growth hacking and bounty hunting | ||