Understanding Celery to maintain your sanity
2020-09-19, 11:55–12:35, Virtual

Many Django apps use Celery as a task queue for long running tasks. Many talks and blogs focus on how to use Celery. But we can't stop there. Once you're actually using Celery it's time to understand what it is actually doing so you can be prepared for when things go wrong and know what tools are out there to help you troubleshoot any issues.


I had the idea for this talk after we had a critical issue in production. All of our Celery workers were refusing to pick up any new tasks. I had read the docs on how to use Celery but now that things had gone wrong I needed to know how it worked. That was a very stressful time to try to learn that. Anyone who has Celery in their stack should invest the time to understand Celery before it goes wrong.

The outline of my talk is:
* Why do I need an asynchronous task queue? (Doesn't Django have everything I need?) (5 mins)
* Why would I pick Celery? (and why is it so popular) (1 min)
* What is it actually doing? (10 mins)
* An example of things going wrong (and with a tool so configurable, it probably will) (4 mins)
* How to intervene and correct problems (8 mins)
* The future of async with Django (2 mins)