Chapter 7. Task Scheduling
Most applications need to schedule tasks to be executed later, either immediately after handling an HTTP request or after a delay. In this chapter, I’ll show you how to handle task scheduling on Cloud Run—because the usual approaches won’t work like you expect.
On a traditional server, you handle these types of tasks by spawning a background thread or scheduling a cron job, but these approaches are not compatible with serverless environments like Cloud Run: the platform only guarantees CPU access while your container is handling requests, and the containers are disposable. This means your container might disappear, or lose CPU access while handling a task.
I will start with a list of example use cases and introduce you to a way to execute tasks reliably with Cloud Tasks, another Google Cloud product. These include:
Processing an image—a user uploads a picture and you want to resize and crop the file
Generating a PDF—for example, an invoice
Making a screenshot of a web page using a headless browser
Regenerating a search index after a database record updates
Cloud Tasks
Cloud Tasks is a product that helps you reliably schedule and execute HTTP requests. Take a look at Figure 7-1 to see how you would use it to handle background tasks.
You start with scheduling a task. You might think that Cloud Tasks performs that task, but it’s not going to. Scheduling a task means you hand the recipe for an HTTP request to Cloud Tasks, and executing a task means Cloud ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access