whatsnew-4.0.rst 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. .. _whatsnew-4.0:
  2. ===========================================
  3. What's new in Celery 4.0 (TBA)
  4. ===========================================
  5. :Author: Ask Solem (ask at celeryproject.org)
  6. .. sidebar:: Change history
  7. What's new documents describe the changes in major versions,
  8. we also have a :ref:`changelog` that lists the changes in bugfix
  9. releases (0.0.x), while older series are archived under the :ref:`history`
  10. section.
  11. Celery is a simple, flexible and reliable distributed system to
  12. process vast amounts of messages, while providing operations with
  13. the tools required to maintain such a system.
  14. It's a task queue with focus on real-time processing, while also
  15. supporting task scheduling.
  16. Celery has a large and diverse community of users and contributors,
  17. you should come join us :ref:`on IRC <irc-channel>`
  18. or :ref:`our mailing-list <mailing-list>`.
  19. To read more about Celery you should go read the :ref:`introduction <intro>`.
  20. While this version is backward compatible with previous versions
  21. it's important that you read the following section.
  22. This version is officially supported on CPython 2.7, 3.4 and 3.5.
  23. and also supported on PyPy.
  24. .. _`website`: http://celeryproject.org/
  25. .. topic:: Table of Contents
  26. Make sure you read the important notes before upgrading to this version.
  27. .. contents::
  28. :local:
  29. :depth: 2
  30. Preface
  31. =======
  32. .. _v320-important:
  33. Important Notes
  34. ===============
  35. Dropped support for Python 2.6
  36. ------------------------------
  37. Celery now requires Python 2.7 or later.
  38. JSON is now the default serializer
  39. ----------------------------------
  40. Using one logfile per process by default
  41. ----------------------------------------
  42. The Task base class no longer automatically register tasks
  43. ----------------------------------------------------------
  44. The metaclass has been removed blah blah
  45. Arguments now verified when calling a task
  46. ------------------------------------------
  47. .. _v320-news:
  48. News
  49. ====
  50. New Task Message Protocol
  51. =========================
  52. ``TaskProducer`` replaced by ``app.amqp.create_task_message`` and
  53. ``app.amqp.send_task_message``.
  54. - Worker stores results for internal errors like ``ContentDisallowed``, and
  55. exceptions occurring outside of the task function.
  56. Canvas Refactor
  57. ===============
  58. Riak Result Backend
  59. ===================
  60. Contributed by Gilles Dartiguelongue, Alman One and NoKriK.
  61. Bla bla
  62. - blah blah
  63. New Cassandra Backend
  64. =====================
  65. The new Cassandra backend utilizes the python-driver library.
  66. Old backend is deprecated and everyone using cassandra is required to upgrade
  67. to be using the new driver.
  68. # XXX What changed?
  69. Event Batching
  70. ==============
  71. Events are now buffered in the worker and sent as a list
  72. Task.replace
  73. ============
  74. Task.replace changed, removes Task.replace_in_chord.
  75. The two methods had almost the same functionality, but the old Task.replace
  76. would force the new task to inherit the callbacks/errbacks of the existing
  77. task.
  78. If you replace a node in a tree, then you would not expect the new node to
  79. inherit the children of the old node, so this seems like unexpected
  80. behavior.
  81. So self.replace(sig) now works for any task, in addition sig can now
  82. be a group.
  83. Groups are automatically converted to a chord, where the callback
  84. will "accumulate" the results of the group tasks.
  85. A new builtin task (`celery.accumulate` was added for this purpose)
  86. Closes #817
  87. Optimized Beat implementation
  88. =============================
  89. In Other News
  90. -------------
  91. - **Requirements**:
  92. - Now depends on :ref:`Kombu 3.1 <kombu:version-3.1.0>`.
  93. - Now depends on :mod:`billiard` version 3.4.
  94. - No longer depends on ``anyjson`` :sadface:
  95. - **Programs**: ``%n`` format for :program:`celery multi` is now synonym with
  96. ``%N`` to be consistent with :program:`celery worker`.
  97. - **Programs**: celery inspect/control now supports --json argument
  98. - **Programs**: :program:`celery logtool`: Utility for filtering and parsing celery worker logfiles
  99. - **Worker**: Gossip now sets ``x-message-ttl`` for event queue to heartbeat_interval s.
  100. (Iss ue #2005).
  101. - **App**: New signals
  102. - :data:`app.on_configure <@on_configure>`
  103. - :data:`app.on_after_configure <@on_after_configure>`
  104. - :data:`app.on_after_finalize <@on_after_finalize>`
  105. - **Canvas**: ``chunks``/``map``/``starmap`` are now routed based on the target task.
  106. - Apps can now define how tasks are named (:meth:`@gen_task_name`).
  107. Contributed by Dmitry Malinovsky
  108. - Module ``celery.worker.job`` renamed to :mod:`celery.worker.request`.
  109. - Beat: ``Scheduler.Publisher``/``.publisher`` renamed to
  110. ``.Producer``/``.producer``.
  111. .. _v320-removals:
  112. Scheduled Removals
  113. ==================
  114. - The module ``celery.task.trace`` has been removed as scheduled for this
  115. version.
  116. - Magic keyword arguments no longer supported.
  117. .. _v320-deprecations:
  118. Deprecations
  119. ============
  120. See the :ref:`deprecation-timeline`.
  121. .. _v320-fixes:
  122. Fixes
  123. =====
  124. .. _v320-internal:
  125. Internal changes
  126. ================
  127. - Module ``celery.worker.job`` has been renamed to :mod:`celery.worker.request`.