Background work for Python apps

Move work out of requests and into flow.

A focused job queue for small teams shipping Python applications. Launch background jobs quickly, keep requests responsive, and take a smoother path to production.

Python-nativeMinimal setupProduction-minded

The useful distinction

Your request should not have to carry the whole job.

01 / respond

Keep the app moving.

Move work that does not need to happen now out of the request path.

02 / focus

Skip the queue maze.

Use a focused workflow when a larger infrastructure system is more than the moment calls for.

03 / ship

Keep the path practical.

Start from a real Python task and build toward the background workflows your product needs.

A short path

From Python task to background flow.

The first useful move is simple: define the task, enqueue it, and let the worker take it from there.

Read the example
01

Enqueue

Keep the request light.

Hand the work off from your Python app instead of making the user wait for it.

02

Process

Let a worker do the work.

The job leaves the request and enters a managed execution flow built for background work.

03

Complete

Ship the result.

Start with one useful task, then add the workflows your product actually needs.

Start with something real

One task is enough to see the shape of it.

Keep the example close to the work your application already does. The queue should make background processing easier to introduce, not become another product to operate.

send_email.py ready to enqueue
@job.task
def send_email(user_id):
 user = User.get(user_id)
 mailer.send_welcome(user)

send_email.enqueue(user.id)
task / definedjob / queuedworker / next

Background work, shipped simply.

Give the next job somewhere better to go.

See how it works