-
Book Overview & Buying
-
Table Of Contents
gRPC Go for Professionals
By :
Deadlines are the most important thing when we are dealing with asynchronous communication. This is because a call could never return due to network or other problems. That is why Google recommends that we set a deadline for each of our RPC calls. Fortunately for us, this is as easy as canceling a call.
The first thing that we need to do, on the client side, is to create a context. This is similar to the WithCancel function, but this time, we will use WithTimeout. It takes a parent context like WithCancel but on top of that, it takes a Time instance representing the maximum amount of time for which we are willing to wait for a server answer.
Instead of WithCancel in printTasks, we are now going to have the following context:
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Millisecond) defer cancel()
Obviously, a timeout of 1 millisecond is way too low to let the server answer, but this is done on purpose so that we can get a DeadlineExceeded...