This document describes the current stable version of Celery (5.4). For development docs, go here.

What’s new in Celery 4.1 (latentcall)


Omer Katz (omer.drow at

Celery is a simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system.

It’s a task queue with focus on real-time processing, while also supporting task scheduling.

Celery has a large and diverse community of users and contributors, you should come join us on IRC or our mailing-list.

To read more about Celery you should go read the introduction.

While this version is backward compatible with previous versions it’s important that you read the following section.

This version is officially supported on CPython 2.7, 3.4, 3.5 & 3.6 and is also supported on PyPy.


The 4.1.0 release continues to improve our efforts to provide you with the best task execution platform for Python.

This release is mainly a bug fix release, ironing out some issues and regressions found in Celery 4.0.0.

We added official support for Python 3.6 and PyPy 5.8.0.

This is the first time we release without Ask Solem as an active contributor. We’d like to thank him for his hard work in creating and maintaining Celery over the years.

Since Ask Solem was not involved there were a few kinks in the release process which we promise to resolve in the next release. This document was missing when we did release Celery 4.1.0. Also, we did not update the release codename as we should have. We apologize for the inconvenience.

For the time being, I, Omer Katz will be the release manager.

Thank you for your support!

— Omer Katz

Wall of Contributors

Acey <> Acey9 <> Alan Hamlett <> Alan Justino da Silva <> Alejandro Pernin <> Alli <> Andreas Pelme <> Andrew de Quincey <> Anthony Lukach <> Arcadiy Ivanov <> Arnaud Rocher <> Arthur Vigil <> Asif Saifuddin Auvi <> Ask Solem <> BLAGA Razvan-Paul <> Brendan MacDonell <> Brian Luan <> Brian May <> Bruno Alla <> Chris Kuehl <> Christian <> Christopher Hoskin <> Daniel Hahler <> Daniel Huang <> Derek Harland <> Dmytro Petruk <> Ed Morley <> Eric Poelke <> Felipe <> François Voron <> GDR! <> George Psarakis <> J Alan Brogan <> James Michael DuPont <> Jamie Alessio <> Javier Domingo Cansino <> Jay McGrath <> Jian Yu <> Joey Wilhelm <> Jon Dufresne <> Kalle Bronsen <> Kirill Romanov <> Laurent Peuch <> Luke Plant <> Marat Sharafutdinov <> Marc Gibbons <> Marc Hörsken <> Michael <> Michael Howitz <> Michal Kuffa <> Mike Chen <> Mike Helmick <> Morgan Doocy <> Moussa Taifi <> Omer Katz <> Patrick Cloke <> Peter Bittner <> Preston Moore <> Primož Kerin <> Pysaoke <> Rick Wargo <> Rico Moorman <> Roman Sichny <> Ross Patterson <> Ryan Hiebert <> Rémi Marenco <> Salvatore Rinchiera <> Samuel Dion-Girardeau <> Sergey Fursov <> Simon Legner <> Simon Schmidt <> Slam <> Static <> Steffen Allner <> Steven <> Steven Johns <> Tamer Sherif <> Tao Qingyun <> Tayfun Sen <> Taylor C. Richberger <> Thierry RAMORASOAVINA <> Tom ‘Biwaa’ Riat <> Viktor Holmqvist <> Viraj <> Vivek Anand <> Will <> Wojciech Żywno <> Yoichi NAKAYAMA <> YuLun Shih <> Yuhannaa <> abhinav nilaratna <> aydin <> csfeathers <> georgepsarakis <> orf <> shalev67 <> sww <> tnir <> 何翔宇(Sean Ho) <>


This wall was automatically generated from git history, so sadly it doesn’t not include the people who help with more important things like answering mailing-list questions.

Important Notes

Added support for Python 3.6 & PyPy 5.8.0

We now run our unit test suite and integration test suite on Python 3.6.x and PyPy 5.8.0.

We expect newer versions of PyPy to work but unfortunately we do not have the resources to test PyPy with those versions.

The supported Python Versions are:

  • CPython 2.7

  • CPython 3.4

  • CPython 3.5

  • CPython 3.6

  • PyPy 5.8 (pypy2)


Result Backends

New DynamoDB Results Backend

We added a new results backend for those of you who are using DynamoDB.

If you are interested in using this results backend, refer to AWS DynamoDB backend settings for more information.


The Elasticsearch results backend is now more robust and configurable.

See Elasticsearch backend settings for more information about the new configuration options.


The Redis results backend can now use TLS to encrypt the communication with the Redis database server.

See Redis backend settings.


The MongoDB results backend can now handle binary-encoded task results.

This was a regression from 4.0.0 which resulted in a problem using serializers such as MsgPack or Pickle in conjunction with the MongoDB results backend.

Periodic Tasks

The task schedule now updates automatically when new tasks are added. Now if you use the Django database scheduler, you can add and remove tasks from the schedule without restarting Celery beat.


The disable_sync_subtasks argument was added to allow users to override disabling synchronous subtasks.

See Avoid launching synchronous subtasks


Multiple bugs were resolved resulting in a much smoother experience when using Canvas.