|
@@ -0,0 +1,272 @@
|
|
|
+.. _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 <irc-channel>`
|
|
|
+or :ref:`our mailing-list <mailing-list>`.
|
|
|
+
|
|
|
+To read more about Celery you should go read the :ref:`introduction <intro>`.
|
|
|
+
|
|
|
+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 <https://en.wikipedia.org/wiki/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 <https://en.wikipedia.org/wiki/Aphex_Twin>`_'s track names.
|
|
|
+This release is codenamed after his very famous track, `Windowlicker <https://youtu.be/UBS4Gi1y_nc?t=4m>`_.
|
|
|
+
|
|
|
+Thank you for your support!
|
|
|
+
|
|
|
+*— Omer Katz*
|
|
|
+
|
|
|
+Wall of Contributors
|
|
|
+--------------------
|
|
|
+
|
|
|
+Alejandro Varas <alej0varas@gmail.com>
|
|
|
+Alex Garel <alex@garel.org>
|
|
|
+Alex Hill <alex@hill.net.au>
|
|
|
+Alex Zaitsev <azaitsev@gmail.com>
|
|
|
+Alexander Ovechkin <frostoov@gmail.com>
|
|
|
+Andrew Wong <argsno@gmail.com>
|
|
|
+Anton <anton.gladkov@gmail.com>
|
|
|
+Anton Gladkov <atn18@yandex-team.ru>
|
|
|
+Armenak Baburyan <kanemra@gmail.com>
|
|
|
+Asif Saifuddin Auvi <auvipy@users.noreply.github.com>
|
|
|
+BR <b.rabiega@gmail.com>
|
|
|
+Ben Welsh <ben.welsh@gmail.com>
|
|
|
+Bohdan Rybak <bohdan.rybak@gmail.com>
|
|
|
+Chris Mitchell <chris.mit7@gmail.com>
|
|
|
+DDevine <devine@ddevnet.net>
|
|
|
+Dan Wilson <danjwilson@gmail.com>
|
|
|
+David Baumgold <david@davidbaumgold.com>
|
|
|
+David Davis <daviddavis@users.noreply.github.com>
|
|
|
+Denis Podlesniy <Haos616@Gmail.com>
|
|
|
+Denis Shirokov <dan@rexuni.com>
|
|
|
+Fengyuan Chen <cfy1990@gmail.com>
|
|
|
+GDR! <gdr@gdr.name>
|
|
|
+Geoffrey Bauduin <bauduin.geo@gmail.com>
|
|
|
+George Psarakis <giwrgos.psarakis@gmail.com>
|
|
|
+Harry Moreno <morenoh149@gmail.com>
|
|
|
+Huang Huang <mozillazg101@gmail.com>
|
|
|
+Igor Kasianov <super.hang.glider@gmail.com>
|
|
|
+JJ <jairojair@gmail.com>
|
|
|
+Jackie Leng <Jackie.Leng@nelen-schuurmans.nl>
|
|
|
+James M. Allen <james.m.allen@gmail.com>
|
|
|
+Javier Martin Montull <javier.martin.montull@cern.ch>
|
|
|
+John Arnold <johnar@microsoft.com>
|
|
|
+Jon Dufresne <jon.dufresne@gmail.com>
|
|
|
+Jozef <knaperek@users.noreply.github.com>
|
|
|
+Kevin Gu <guqi@reyagroup.com>
|
|
|
+Kxrr <Hi@Kxrr.Us>
|
|
|
+Leo Singer <leo.singer@ligo.org>
|
|
|
+Mads Jensen <mje@inducks.org>
|
|
|
+Manuel Vázquez Acosta <mvaled@users.noreply.github.com>
|
|
|
+Marcelo Da Cruz Pinto <Marcelo_DaCruzPinto@McAfee.com>
|
|
|
+Marco Schweighauser <marco@mailrelay.ch>
|
|
|
+Markus Kaiserswerth <github@sensun.org>
|
|
|
+Matt Davis <matteius@gmail.com>
|
|
|
+Michael <michael-k@users.noreply.github.com>
|
|
|
+Michael Peake <michaeljpeake@icloud.com>
|
|
|
+Mikołaj <mikolevy1@gmail.com>
|
|
|
+Misha Wolfson <myw@users.noreply.github.com>
|
|
|
+Nick Eaket <4418194+neaket360pi@users.noreply.github.com>
|
|
|
+Nicolas Mota <nicolas_mota@live.com>
|
|
|
+Omer Katz <omer.drow@gmail.com>
|
|
|
+Patrick Cloke <clokep@users.noreply.github.com>
|
|
|
+Patrick Zhang <patdujour@gmail.com>
|
|
|
+Paulo <PauloPeres@users.noreply.github.com>
|
|
|
+Rachel Johnson <racheljohnson457@gmail.com>
|
|
|
+Raphaël Riel <raphael.riel@gmail.com>
|
|
|
+Russell Keith-Magee <russell@keith-magee.com>
|
|
|
+Ryan Guest <ryanguest@gmail.com>
|
|
|
+Ryan P Kilby <rpkilby@ncsu.edu>
|
|
|
+Régis B <github@behmo.com>
|
|
|
+Sammie S. Taunton <diemuzi@gmail.com>
|
|
|
+Samuel Dion-Girardeau <samueldg@users.noreply.github.com>
|
|
|
+Scott Cooper <scttcper@gmail.com>
|
|
|
+Sergi Almacellas Abellana <sergi@koolpi.com>
|
|
|
+Sergio Fernandez <ElAutoestopista@users.noreply.github.com>
|
|
|
+Shitikanth <golu3990@gmail.com>
|
|
|
+Theodore Dubois <tbodt@users.noreply.github.com>
|
|
|
+Thijs Triemstra <info@collab.nl>
|
|
|
+Tobias Kunze <rixx@cutebit.de>
|
|
|
+Vincent Barbaresi <vbarbaresi@users.noreply.github.com>
|
|
|
+Vinod Chandru <vinod.chandru@gmail.com>
|
|
|
+Wido den Hollander <wido@widodh.nl>
|
|
|
+Xavier Hardy <xavierhardy@users.noreply.github.com>
|
|
|
+anentropic <ego@anentropic.com>
|
|
|
+arpanshah29 <ashah29@stanford.edu>
|
|
|
+dmollerm <d.moller.m@gmail.com>
|
|
|
+hclihn <23141651+hclihn@users.noreply.github.com>
|
|
|
+jess <jessachandler@gmail.com>
|
|
|
+lead2gold <caronc@users.noreply.github.com>
|
|
|
+mariia-zelenova <32500603+mariia-zelenova@users.noreply.github.com>
|
|
|
+martialp <martialp@users.noreply.github.com>
|
|
|
+mperice <mperice@users.noreply.github.com>
|
|
|
+pachewise <pachewise@users.noreply.github.com>
|
|
|
+partizan <serg.partizan@gmail.com>
|
|
|
+y0ngdi <36658095+y0ngdi@users.noreply.github.com>
|
|
|
+
|
|
|
+.. 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 occured 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 <celery.worker.request.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.
|