Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
gRPC Go for Professionals

You're reading from   gRPC Go for Professionals Implement, test, and deploy production-grade microservices

Arrow left icon
Product type Paperback
Published in Jul 2023
Publisher Packt
ISBN-13 9781837638840
Length 260 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Clément Jean Clément Jean
Author Profile Icon Clément Jean
Clément Jean
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Chapter 1: Networking Primer 2. Chapter 2: Protobuf Primer FREE CHAPTER 3. Chapter 3: Introduction to gRPC 4. Chapter 4: Setting Up a Project 5. Chapter 5: Types of gRPC Endpoints 6. Chapter 6: Designing Effective APIs 7. Chapter 7: Out-of-the-Box Features 8. Chapter 8: More Essential Features 9. Chapter 9: Production-Grade APIs 10. Epilogue
11. Index 12. Other Books You May Enjoy

Specifying deadlines

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...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image