announcement.rst 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. ===============================
  2. Celery 1.0 has been released!
  3. ===============================
  4. We're happy to announce the release of Celery 1.0.
  5. What is it?
  6. ===========
  7. Celery is a task queue/job queue based on distributed message passing.
  8. It is focused on real-time operation, but has support for scheduling as well.
  9. The execution units, called tasks, are executed concurrently on one or
  10. more worker servers, asynchronously (in the background) or synchronously
  11. (wait until ready).
  12. Celery is already used in production to process millions of tasks a day.
  13. It was first created for Django, but is now usable from Python. It can
  14. also operate with other languages via webhooks.
  15. The recommended message broker is `RabbitMQ`_, but support for Redis or
  16. database is also available.
  17. .. _`RabbitMQ`: http://rabbitmq.org
  18. Features
  19. --------
  20. See http://ask.github.com/celery/getting-started/introduction.html#features
  21. Stable API
  22. ==========
  23. From this version on the API will be considered stable. This means there won't
  24. be any backwards incompatible changes to new minor versions. Changes to the
  25. API needs to be deprecated; so, for example, if we decided to remove a function
  26. that existed in Celery 1.0:
  27. * Celery 1.2 will contain a backwards-compatible replica of the function which
  28. will raise a ``PendingDeprecationWarning``.
  29. This warning is silent by default; you need to explicitly turn on display
  30. of these warnings.
  31. * Celery 1.4 will contain the backwards-compatible replica, but the warning
  32. will be promoted to a full-fledged ``DeprecationWarning``. This warning
  33. is loud by default, and will likely be quite annoying.
  34. * Celery 1.6 will remove the feature outright.
  35. See the `Celery Deprecation Timeline`_ for a list of pending removals.
  36. .. _`Celery Deprecation Timeline`:
  37. http://ask.github.com/celery/internals/deprecation.html
  38. What's new?
  39. ===========
  40. * Awesome new task decorators
  41. Write your tasks as regular functions and decorate them.
  42. There's both :func:`task`, and :func:`periodic_task` decorators.
  43. * Tasks are automatically registered
  44. Registering the tasks manually was getting tedious, so now you don't have
  45. to anymore. However -- You can still do it manually if you need to, just
  46. disable :attr:`Task.autoregister`. The concept of abstract task classes
  47. has also been introduced, this is like django models, where only the
  48. subclasses of an abstract task is registered.
  49. * Events
  50. If enabled, the worker is now sending events, telling you what it's
  51. doing, and whether it's alive or not. This is the basis for the new
  52. real-time web monitor we're working on.
  53. * Rate limiting
  54. Global and per task rate limits. 10 tasks a second? or one an hour? You
  55. got it. It's using the awesome `token bucket algorithm`_, which is
  56. commonly used for network traffic shaping. It accounts for bursts of
  57. activity, so your workers won't be bored by having nothing to do.
  58. .. _`token bucket algorithm`: http://en.wikipedia.org/wiki/Token_bucket
  59. * New periodic task service.
  60. Periodic tasks are no longer dispatched by ``celeryd``, but instead by a
  61. separate service called ``celerybeat``. This is an optimized, centralized
  62. service dedicated to your periodic tasks, which means you don't have to
  63. worry about deadlocks or race conditions any more. But, also it means you
  64. have to make sure only one instance of this service is running at any one
  65. time.
  66. **TIP:** If you're only running a single ``celeryd`` server, you can embed
  67. ``celerybeat`` inside it. Just add the ``--beat`` argument.
  68. * Broadcast commands
  69. If you change your mind and don't want to run a task after all, you
  70. now have the option to revoke it.
  71. Also, you can rate limit tasks or even shut down the worker remotely.
  72. It doesn't have many commands yet, but we're waiting for broadcast
  73. commands to reach its full potential, so please share your ideas
  74. if you have any.
  75. * Multiple queues
  76. The worker is now able to receive tasks on multiple queues at once.
  77. This opens up a lot of new possibilities when combined with the impressive
  78. routing support in AMQP.
  79. * Platform agnostic message format.
  80. The message format has been standardized and is now using the ISO-8601 format
  81. for dates instead of Python ``datetime`` objects. This means you can write task
  82. consumers in other languages than Python (``eceleryd`` anyone?)
  83. * Timely
  84. Periodic tasks are now scheduled on the clock, i.e. ``timedelta(hours=1)``
  85. means every hour at :00 minutes, not every hour from the server starts.
  86. To revert to the previous behavior you have the option to enable
  87. :attr:`PeriodicTask.relative`.
  88. * ... and a lot more!
  89. To read more about these and other changes in detail, please refer to
  90. the `changelog`_. This document contains crucial information relevant to those
  91. upgrading from a previous version of Celery, so be sure to read the entire
  92. change set before you continue.
  93. .. _`changelog`: http://ask.github.com/celery/changelog.html
  94. **TIP:** If you install the :mod:`setproctitle` module you can see which
  95. task each worker process is currently executing in ``ps`` listings.
  96. Just install it using pip: ``pip install setproctitle``.
  97. Resources
  98. =========
  99. * Homepage: http://celeryproject.org
  100. * Download: http://pypi.python.org/pypi/celery
  101. * Documentation: http://celeryproject.org/docs/
  102. * Changelog: http://celeryproject.org/docs/changelog.html
  103. * Code: http://github.com/ask/celery/
  104. * FAQ: http://ask.github.com/celery/faq.html
  105. * Mailing-list: http://groups.google.com/celery-users
  106. * IRC: #celery on irc.freenode.net.