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

Get Building Serverless Applications with Google Cloud Run now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.