Github icon Twitter icon Facebook Globe

Tasks: you gotta know how to run 'em, you gotta know how to safe' em

Wednesday 4:40pm, Ballrooms B and C

About This Talk

Web developers often find themselves in situations where server processing takes longer than a user would accept. One very common situation is when sending emails. Although simple and relatively quick task, it requires the communication with an external service. In this situation, it’s not possible to foresee how long that service will take to answer. Not to mention the many unexpected situations that can arise, such as errors and bugs. The solution to this problem is to delegate long lasting tasks while responding quickly to the user. This is the point where we need async tasks. There are some tools available that can assist in this job. In this talk, you will learn about the concepts, caveats and best practices for when developing async tasks. For this, I will use Python’s most popular tool for the task: Celery.


  • Setting the context (~3 min)
  • The architecture (~3 min)
    • Brokers
    • Workers
  • Use cases (~2 min)
    • External calls
    • Long computations
    • Data caching
  • Tools available (~1 min)
  • Celery (~16 min)
    • Callbacks
    • Canvas
    • Logging
    • Retrying
    • Monitoring
    • Tests and debugging
Photo of

Filipe Ximenes

I’m a Python/Django developer from Brazil. I work in a Django shop I started with a couple friends and I’m passionate about developing beautiful code. I’m interested in all kinds of programming languages, their communities and open source. I believe simple is better than complex, and that this should be a mantra for most things in life. I value human relationships and the way we, as a society, interact with the place we live in. For that, I recognize the use of bicycles for transportation and the use of public space as a priority to build healthy cities.