Python Quest

Track 17 · Lesson 10 of 12

Project: async job scheduler

Build a scheduler that runs background jobs concurrently with asyncio: priorities, a concurrency limit, timeouts, retries and a deterministic run report.

About 95 minAdvanced6 exercises

You will be able to

  • Model a job as a validated dataclass and order work by priority
  • Write coroutines with async/await and run them with asyncio.run and asyncio.gather
  • Limit how many jobs run at once with asyncio.Semaphore
  • Enforce per-job timeouts with asyncio.wait_for and retry failed attempts a fixed number of times
  • Produce results and reports in a deterministic order, whatever order the jobs finish in

Included with a Formula Quest membership

It has 6 graded exercises with feedback, hints and solutions. Python Quest is included in Formula Quest memberships that cover Python; membership and billing are managed on Formula Quest.

View Formula Quest memberships

Tracks 1 and 2, the first lesson of every track, the playground and the dataset library are free.