.. _whatsnew-4.2: =========================================== What's new in Celery 4.2 (windowlicker) =========================================== :Author: Omer Katz (``omer.drow at gmail.com``) .. sidebar:: Change history What's new documents describe the changes in major versions, we also have a :ref:`changelog` that lists the changes in bugfix releases (0.0.x), while older series are archived under the :ref:`history` section. 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 :ref:`on IRC ` or :ref:`our mailing-list `. To read more about Celery you should go read the :ref:`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. .. _`website`: http://celeryproject.org/ .. topic:: Table of Contents Make sure you read the important notes before upgrading to this version. .. contents:: :local: :depth: 2 Preface ======= The 4.2.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. Traditionally, releases were named after `Autechre `_'s track names. This release continues this tradition in a slightly different way. Each major version of Celery will use a different artist's track names as codenames. From now on, the 4.x series will be codenamed after `Aphex Twin `_'s track names. This release is codenamed after his very famous track, `Windowlicker `_. Thank you for your support! *— Omer Katz* Wall of Contributors -------------------- Aaron Harnly Aaron Harnly Aaron McMillin Aaron Ross Aaron Ross Aaron Schumacher abecciu abhinav nilaratna Acey9 Acey aclowes Adam Chainz Adam DePue Adam Endicott Adam Renberg Adam Venturella Adaptification Adrian adriano petrich Adrian Rego Adrien Guinet Agris Ameriks Ahmet Demir air-upc Aitor Gómez-Goiri Akira Matsuzaki Akshar Raaj Alain Masiero Alan Hamlett Alan Hamlett Alan Justino Alan Justino da Silva Albert Wang Alcides Viamontes Esquivel Alec Clowes Alejandro Pernin Alejandro Varas Aleksandr Kuznetsov Ales Zoulek Alexander Alexander A. Sosnovskiy Alexander Koshelev Alexander Koval Alexander Oblovatniy Alexander Oblovatniy Alexander Ovechkin Alexander Smirnov Alexandru Chirila Alexey Kotlyarov Alexey Zatelepin Alex Garel Alex Hill Alex Kiriukha Alex Koshelev Alex Rattray Alex Williams Alex Zaitsev Ali Bozorgkhan Allan Caffee Allard Hoeve allenling Alli Alman One Alman One alman-one Amir Rustamzadeh anand21nanda@gmail.com Anarchist666 Anders Pearson Andrea Rabbaglietti Andreas Pelme Andreas Savvides Andrei Fokau Andrew de Quincey Andrew Kittredge Andrew McFague Andrew Stewart Andrew Watts Andrew Wong Andrey Voronov Andriy Yurchuk Aneil Mallavarapu anentropic anh Ankur Dedania Anthony Lukach antlegrand <2t.antoine@gmail.com> Antoine Legrand Anton Anton Gladkov Antonin Delpeuch Arcadiy Ivanov areski Armenak Baburyan Armin Ronacher armo Arnaud Rocher arpanshah29 Arsenio Santos Arthur Vigil Arthur Vuillard Ashish Dubey Asif Saifuddin Auvi Asif Saifuddin Auvi ask Ask Solem Ask Solem Ask Solem Hoel aydin baeuml Balachandran C Balthazar Rouberol Balthazar Rouberol bartloop <38962178+bartloop@users.noreply.github.com> Bartosz Ptaszynski <> Batiste Bieler bee-keeper Bence Tamas Ben Firshman Ben Welsh Berker Peksag Bert Vanderbauwhede Bert Vanderbauwhede BLAGA Razvan-Paul bobbybeever bobby Bobby Powers Bohdan Rybak Brad Jasper Branko Čibej BR Brendan MacDonell Brendon Crawford Brent Watson Brian Bouterse Brian Dixon Brian Luan Brian May Brian Peiris Brian Rosner Brodie Rao Bruno Alla Bryan Berg Bryan Berg Bryan Bishop Bryan Helmig Bryce Groff Caleb Mingle Carlos Garcia-Dubus Catalin Iacob Charles McLaughlin Chase Seibert ChillarAnand Chris Adams Chris Angove Chris Chamberlin chrisclark Chris Harris Chris Kuehl Chris Martin Chris Mitchell Chris Rose Chris St. Pierre Chris Streeter Christian Christoph Burgmer Christopher Hoskin Christopher Lee Christopher Peplin Christopher Peplin Christoph Krybus clayg Clay Gerrard Clemens Wolff cmclaughlin Codeb Fan Colin McIntosh Conrad Kramer Corey Farwell Craig Younkins csfeathers Cullen Rhodes daftshady Dan Dan Hackner Daniel Devine Daniele Procida Daniel Hahler Daniel Hepper Daniel Huang Daniel Lundin Daniel Lundin Daniel Watkins Danilo Bargen Dan McGee Dan McGee Dan Wilson Daodao Dave Smith Dave Smith David Arthur David Arthur David Baumgold David Cramer David Davis David Harrigan David Harrigan David Markey David Miller David Miller David Pravec David Pravec David Strauss David White DDevine Denis Podlesniy Denis Shirokov Dennis Brakhane Derek Harland derek_kim dessant Dieter Adriaenssens Dima Kurguzov dimka665 dimlev dmarkey Dmitry Malinovsky Dmitry Malinovsky dmollerm Dmytro Petruk dolugen dongweiming dongweiming Dongweiming dtheodor Dudás Ádám Dustin J. Mitchell D. Yu Ed Morley Eduardo Ramírez Edward Betts Emil Stanchev Eran Rundstein ergo Eric Poelke Eric Zarowny ernop Evgeniy evildmp fatihsucu Fatih Sucu Feanil Patel Felipe Felipe Godói Rosário Felix Berger Fengyuan Chen Fernando Rocha ffeast Flavio Percoco Premoli Florian Apolloner Florian Apolloner Florian Demmer flyingfoxlee Francois Visconte François Voron Frédéric Junod fredj frol Gabriel Gao Jiangmiao GDR! GDvalle Geoffrey Bauduin georgepsarakis George Psarakis George Sibble George Tantiras Georgy Cheshkov Gerald Manipon German M. Bravo Gert Van Gool Gilles Dartiguelongue Gino Ledesma gmanipon Grant Thomas Greg Haskins gregoire Greg Taylor Greg Wilbur Guillaume Gauvrit Guillaume Gendre Gun.io Whitespace Robot Gunnlaugur Thor Briem harm Harm Verhagen Harry Moreno hclihn <23141651+hclihn@users.noreply.github.com> hekevintran honux Honza Kral Honza Král Hooksie Hsiaoming Yang Huang Huang Hynek Schlawack Hynek Schlawack Ian Dees Ian McCracken Ian Wilson Idan Kamara Ignas Mikalajūnas Igor Kasianov illes Ilya <4beast@gmail.com> Ilya Georgievsky Ionel Cristian Mărieș Ionel Maries Cristian Ionut Turturica Iurii Kriachko Ivan Metzlar Ivan Virabyan j0hnsmith Jackie Leng J Alan Brogan Jameel Al-Aziz James M. Allen James Michael DuPont James Pulec James Remeika Jamie Alessio Jannis Leidel Jared Biel Jason Baker Jason Baker Jason Veatch Jasper Bryant-Greene Javier Domingo Cansino Javier Martin Montull Jay Farrimond Jay McGrath jbiel jbochi Jed Smith Jeff Balogh Jeff Balogh Jeff Terrace Jeff Widman Jelle Verstraaten Jeremy Cline Jeremy Zafran jerry Jerzy Kozera Jerzy Kozera jespern Jesper Noehr Jesse jess Jess Johnson Jian Yu JJ João Ricardo Jocelyn Delalande JocelynDelalande Joe Jevnik Joe Sanford Joe Sanford Joey Wilhelm John Anderson John Arnold John Barham John Watson John Watson John Watson John Whitlock Jonas Haag Jonas Obrist Jonatan Heyman Jonathan Jordan Jonathan Sundqvist jonathan vanasco Jon Chen Jon Dufresne Josh Josh Kupershmidt Joshua "jag" Ginsberg Josue Balandrano Coronel Jozef jpellerin jpellerin JP JTill Juan Gutierrez Juan Ignacio Catalano Juan Rossi Juarez Bochi Jude Nagurney Julien Deniau julienp Julien Poissonnier Jun Sakai Justin Patrin Justin Patrin Kalle Bronsen kamalgill Kamil Breguła Kanan Rahimov Kareem Zidane Keith Perkins Ken Fromm Ken Reese keves Kevin Gu Kevin Harvey Kevin McCarthy Kevin Richardson Kevin Richardson Kevin Tran Kieran Brownlees Kirill Pavlov Kirill Romanov komu Konstantinos Koukopoulos Konstantin Podshumok Kornelijus Survila Kouhei Maeda Kracekumar Ramaraju Krzysztof Bujniewicz kuno Kxrr Kyle Kelley Laurent Peuch lead2gold Leo Dirac Leo Singer Lewis M. Kabui llllllllll Locker537 Loic Bistuer Loisaida Sam lookfwd Loren Abrams Loren Abrams Lucas Wiman lucio Luis Clara Gomez Lukas Linhart Łukasz Kożuchowski Łukasz Langa Łukasz Oleś Luke Burden Luke Hutscal Luke Plant Luke Pomfrey Luke Zapart mabouels Maciej Obuchowski Mads Jensen Manuel Kaufmann Manuel Vázquez Acosta Marat Sharafutdinov Marcelo Da Cruz Pinto Marc Gibbons Marc Hörsken Marcin Kuźmiński marcinkuzminski Marcio Ribeiro Marco Buttu Marco Schweighauser mariia-zelenova <32500603+mariia-zelenova@users.noreply.github.com> Marin Atanasov Nikolov Marius Gedminas mark hellewell Mark Lavin Mark Lavin Mark Parncutt Mark Story Mark Stover Mark Thurman Markus Kaiserswerth Markus Ullmann martialp Martin Davidsson Martin Galpin Martin Melin Matt Davis Matthew Duggan Matthew J Morrison Matthew Miller Matthew Schinckel mattlong Matt Long Matt Robenolt Matt Robenolt Matt Williamson Matt Williamson Matt Wise Matt Woodyard Mauro Rocco Maxim Bodyansky Maxime Beauchemin Maxime Vdb Mayflower mbacho mher Mher Movsisyan Michael Aquilina Michael Duane Mooring Michael Elsdoerfer michael@elsdoerfer.com Michael Elsdorfer Michael Elsdörfer Michael Fladischer Michael Floering Michael Howitz michael Michael michael Michael Peake Michael Permana Michael Permana Michael Robellard Michael Robellard Michal Kuffa Miguel Hernandez Martos Mike Attwood Mike Chen Mike Helmick mikemccabe Mikhail Gusarov Mikhail Korobov Mikołaj Milen Pavlov Misha Wolfson Mitar Mitar Mitchel Humpherys mklauber mlissner monkut Morgan Doocy Morris Tweed Morton Fox Môshe van der Sterre Moussa Taifi mozillazg mpavlov mperice mrmmm Muneyuki Noguchi m-vdb nadad Nathaniel Varona Nathan Van Gheem Nat Williams Neil Chintomby Neil Chintomby Nicholas Pilon nicholsonjf Nick Eaket <4418194+neaket360pi@users.noreply.github.com> Nick Johnson Nicolas Mota nicolasunravel Niklas Aldergren Noah Kantrowitz Noel Remy NoKriK Norman Richards NotSqrt nott ocean1 ocean1 ocean1 OddBloke Oleg Anashkin Olivier Aubert Omar Khan Omer Katz Omer Korner orarbel orf Ori Hoch outself Pablo Marti pachewise partizan Pär Wieslander Patrick Altman Patrick Cloke Patrick Patrick Stegmann Patrick Stegmann Patrick Zhang Paul English Paul Jensen Paul Kilgo Paul McMillan Paul McMillan Paulo Paul Pearce Pavel Savchenko Pavlo Kapyshin pegler Pepijn de Vos Peter Bittner Peter Brook Philip Garnero Pierre Fersing Piotr Maślanka Piotr Sikora PMickael PMickael Polina Giralt precious Preston Moore Primož Kerin Pysaoke Rachel Johnson Rachel Willmer raducc Raf Geens Raghuram Srinivasan Raphaël Riel Raphaël Slinckx Régis B Remigiusz Modrzejewski Rémi Marenco rfkrocktk Rick van Hattem Rick Wargo Rico Moorman Rik Rinat Shigapov Riyad Parvez rlotun rnoel Robert Knight Roberto Gaiser roderick Rodolphe Quiedeville Roger Hu Roger Hu Roman Imankulov Roman Sichny Romuald Brunet Ronan Amicel Ross Deane Ross Lawley Ross Patterson Ross Rudy Attias rumyana neykova Rumyana Neykova Rune Halvorsen Rune Halvorsen runeh Russell Keith-Magee Ryan Guest Ryan Hiebert Ryan Kelly Ryan Luckie Ryan Petrello Ryan P. Kelly Ryan P Kilby Salvatore Rinchiera Sam Cooke samjy Sammie S. Taunton Samuel Dion-Girardeau Samuel Dion-Girardeau Samuel GIFFARD Scott Cooper screeley sdcooke Sean O'Connor Sean Wang Sebastian Kalinowski Sébastien Fievet Seong Won Mun Sergey Fursov Sergey Tikhonov Sergi Almacellas Abellana Sergio Fernandez Seungha Kim shalev67 Shitikanth Silas Sewell Simon Charette Simon Engledew Simon Josi Simon Legner Simon Peeters Simon Schmidt skovorodkin Slam <3lnc.slam@gmail.com> Smirl squfrans Srinivas Garlapati Stas Rudakou Static Steeve Morin Stefan hr Berder Stefan Kjartansson Steffen Allner Stephen Weber Steven Johns Steven Parker Steven Steven Sklar Steven Skoczen Steven Skoczen Steve Peak stipa sukrit007 Sukrit Khera Sundar Raman sunfinite sww Tadej Janež Taha Jahangir Takeshi Kanemoto TakesxiSximada Tamer Sherif Tao Qingyun <845767657@qq.com> Tarun Bhardwaj Tayfun Sen Tayfun Sen Tayfun Sen tayfun Taylor C. Richberger taylornelson Theodore Dubois Theo Spears Thierry RAMORASOAVINA Thijs Triemstra Thomas French Thomas Grainger Thomas Johansson Thomas Meson Thomas Minor Thomas Wright Timo Sugliani Timo Sugliani Titusz tnir Tobias Kunze Tocho Tochev Tomas Machalek Tomasz Święcicki Tom 'Biwaa' Riat Tomek Święcicki Tom S tothegump Travis Swicegood Travis Swicegood Travis Trevor Skaggs Ujjwal Ojha unknown Valentyn Klindukh Viktor Holmqvist Vincent Barbaresi Vincent Driessen Vinod Chandru Viraj Vitaly Babiy Vitaly Vivek Anand Vlad Vladimir Gorbunov Vladimir Kryachko Vladimir Rutsky Vladislav Stepanov <8uk.8ak@gmail.com> Vsevolod Wes Turner wes Wes Winham w- whendrik Wido den Hollander Wieland Hoffmann Wiliam Souza Wil Langford William King Will Will Thompson winhamwr Wojciech Żywno W. Trevor King wyc wyc xando Xavier Damman Xavier Hardy Xavier Ordoquy xin li xray7224 y0ngdi <36658095+y0ngdi@users.noreply.github.com> Yan Kalchevskiy Yohann Rebattu Yoichi NAKAYAMA Yuhannaa YuLun Shih Yury V. Zaytsev Yuval Greenfield Zach Smith Zhang Chi Zhaorong Ma Zoran Pavlovic ztlpn 何翔宇(Sean Ho) 許邱翔 .. note:: 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. .. _v420-important: Important Notes =============== Supported Python Versions ------------------------- The supported Python Versions are: - CPython 2.7 - CPython 3.4 - CPython 3.5 - CPython 3.6 - PyPy 5.8 (``pypy2``) .. _v420-news: News ==== Result Backends --------------- New Redis Sentinel Results Backend ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Redis Sentinel provides high availability for Redis. A new result backend supporting it was added. Cassandra Results Backend ~~~~~~~~~~~~~~~~~~~~~~~~~ A new `cassandra_options` configuration option was introduced in order to configure the cassandra client. See :ref:`conf-cassandra-result-backend` for more information. DynamoDB Results Backend ~~~~~~~~~~~~~~~~~~~~~~~~ A new `dynamodb_endpoint_url` configuration option was introduced in order to point the result backend to a local endpoint during development or testing. See :ref:`conf-dynamodb-result-backend` for more information. Python 2/3 Compatibility Fixes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Both the CouchDB and the Consul result backends accepted byte strings without decoding them to Unicode first. This is now no longer the case. Canvas ------ Multiple bugs were resolved resulting in a much smoother experience when using Canvas. Tasks ----- Bound Tasks as Error Callbacks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We fixed a regression that occurred when bound tasks are used as error callbacks. This used to work in Celery 3.x but raised an exception in 4.x until this release. In both 4.0 and 4.1 the following code wouldn't work: .. code-block:: python @app.task(name="raise_exception", bind=True) def raise_exception(self): raise Exception("Bad things happened") @app.task(name="handle_task_exception", bind=True) def handle_task_exception(self): print("Exception detected") subtask = raise_exception.subtask() subtask.apply_async(link_error=handle_task_exception.s()) Task Representation ~~~~~~~~~~~~~~~~~~~ - Shadowing task names now works as expected. The shadowed name is properly presented in flower, the logs and the traces. - `argsrepr` and `kwargsrepr` were previously not used even if specified. They now work as expected. See :ref:`task-hiding-sensitive-information` for more information. Custom Requests ~~~~~~~~~~~~~~~ We now allow tasks to use custom `request `:class: classes for custom task classes. See :ref:`task-requests-and-custom-requests` for more information. Retries with Exponential Backoff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Retries can now be performed with exponential backoffs to avoid overwhelming external services with requests. See :ref:`task-autoretry` for more information. Sphinx Extension ---------------- Tasks were supposed to be automatically documented when using Sphinx's Autodoc was used. The code that would have allowed automatic documentation had a few bugs which are now fixed. Also, The extension is now documented properly. See :ref:`sphinx` for more information.