PageRenderTime 26ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/docs/homepage/celery_1.0_released.html

https://github.com/coderanger/celery
HTML | 236 lines | 219 code | 17 blank | 0 comment | 0 complexity | acb3e8e37689c67a2bbe837f9ee55cc9 MD5 | raw file
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="keywords" content="task queue, job queue, asynchronous, rabbitmq, amqp,
  6. redis, django, python, webhooks, queue, distributed">
  7. <meta name="description" content="open source distributed task queue" >
  8. <link rel="icon" type="image/png" href="favicon.png">
  9. <meta name="viewport" content="width=320, user-scalable=no">
  10. <link rel="apple-touch-icon" href="favicon_64.png"/>
  11. <title>Celery - The Distributed Task Queue</title>
  12. <link rel="stylesheet" href="main.css"/>
  13. <link rel="stylesheet" href="trac.css"/>
  14. <script type="text/javascript">
  15. var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  16. document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  17. </script>
  18. <script type="text/javascript">
  19. try {
  20. var pageTracker = _gat._getTracker("UA-12986238-1");
  21. pageTracker._trackPageview();
  22. } catch(err) {}</script>
  23. </head>
  24. <body>
  25. <div id="navbar">
  26. <div class="iStretch">
  27. <div class="link" id="current"><a href="/">Home</a></div>
  28. <div class="link"><a href="http://github.com/ask/celery">Code</a></div>
  29. <div class="link"><a href="docs/">Documentation</a></div>
  30. <div class="link"><a href="http://ask.github.com/celery/getting-started/">Tutorials</a></div>
  31. <div class="link"><a href="http://pypi.python.org/pypi/celery">Download</a></div>
  32. </div>
  33. </div>
  34. <div class="iStretch">
  35. <div id="topcontainer">
  36. <ul>
  37. <li>Background Processing
  38. <li>Distributed
  39. <li>Asynchronous/Synchronous
  40. <li>Concurrency
  41. <li>Periodic Tasks
  42. <li>Retries
  43. </ul>
  44. </div>
  45. <div id="contentcontainer">
  46. <div class="column">
  47. <h1>Celery 1.0 has been released!</a></h1>
  48. <p>We&#8217;re happy to announce the release of Celery 1.0.</p>
  49. <div class="section" id="what-is-it">
  50. <h2>What is it?</h2>
  51. <p>Celery is a task queue/job queue based on distributed message passing.
  52. It is focused on real-time operation, but supports scheduling as well.</p>
  53. <p>The execution units, called tasks, are executed concurrently on one or
  54. more worker servers. Tasks can execute asynchronously (in the background) or synchronously
  55. (wait until ready).</p>
  56. <p>Celery is already used in production to process millions of tasks a day.</p>
  57. <p>Celery was originally created for use with Django, but is now usable
  58. from any Python project. It can
  59. also operate with other languages via webhooks.</p>
  60. <p>The recommended message broker is <a class="reference external" href="http://rabbitmq.org">RabbitMQ</a>, but support for Redis or
  61. database is also available.</p>
  62. <div class="section" id="features">
  63. <h3>Features</h3>
  64. <p>See <a class="reference external" href="http://ask.github.com/celery/getting-started/introduction.html#features">http://ask.github.com/celery/getting-started/introduction.html#features</a></p>
  65. </div>
  66. </div>
  67. <div class="section" id="stable-api">
  68. <h2>Stable API</a></h2>
  69. <p>From this version on the public API is considered stable. This means there won&#8217;t
  70. be any backwards incompatible changes in new minor versions. Changes to the
  71. API will be deprecated; so, for example, if we decided to remove a function
  72. that existed in Celery 1.0:</p>
  73. <ul class="simple">
  74. <li>Celery 1.2 will contain a backwards-compatible replica of the function which
  75. will raise a <tt class="docutils literal"><span class="pre">PendingDeprecationWarning</span></tt>.
  76. This warning is silent by default; you need to explicitly turn on display
  77. of these warnings.</li>
  78. <li>Celery 1.4 will contain the backwards-compatible replica, but the warning
  79. will be promoted to a full-fledged <tt class="docutils literal"><span class="pre">DeprecationWarning</span></tt>. This warning
  80. is loud by default, and will likely be quite annoying.</li>
  81. <li>Celery 1.6 will remove the feature outright.</li>
  82. </ul>
  83. <p>See the <a class="reference external" href="http://ask.github.com/celery/internals/deprecation.html">Celery Deprecation Timeline</a> for a list of pending removals.</p>
  84. </div>
  85. <div class="section" id="what-s-new">
  86. <h2>What&#8217;s new?</h2>
  87. <ul>
  88. <li><p class="first">Task decorators</p>
  89. <p>Write tasks as regular functions and decorate them.
  90. There are both <tt class="xref docutils literal"><span class="pre">task()</span></tt>, and <tt class="xref docutils literal"><span class="pre">periodic_task()</span></tt> decorators.</p>
  91. </li>
  92. <li><p class="first">Tasks are automatically registered</p>
  93. <p>Registering the tasks manually was getting tedious, so now you don&#8217;t have
  94. to anymore. You can still do it manually if you need to, just
  95. disable <tt class="xref docutils literal"><span class="pre">Task.autoregister</span></tt>. The concept of abstract task classes
  96. has also been introduced, this is like django models, where only the
  97. subclasses of an abstract task is registered.</p>
  98. </li>
  99. <li><p class="first">Events</p>
  100. <p>If enabled, the worker will send events, telling you what tasks it
  101. executes, their results, and how long it took to execute them. It also
  102. sends out heartbeats, so listeners are able to detect nonfunctional
  103. workers. This is the basis for the new real-time web monitor we&#8217;re working on
  104. (<a class="reference external" href="http://github.com/ask/celerymon/">celerymon</a>)</p>
  105. </li>
  106. </ul>
  107. <ul>
  108. <li><p class="first">Rate limiting</p>
  109. <p>Global and per task rate limits. 10 tasks a second? or one an hour? You
  110. decide. It&#8217;s using the awesome <a class="reference external" href="http://en.wikipedia.org/wiki/Token_bucket">token bucket algorithm</a>, which is
  111. commonly used for network traffic shaping. It accounts for bursts of
  112. activity, so your workers won&#8217;t be bored by having nothing to do.</p>
  113. </li>
  114. </ul>
  115. <ul>
  116. <li><p class="first">New periodic task service.</p>
  117. <p>Periodic tasks are no longer dispatched by <tt class="docutils literal"><span class="pre">celeryd</span></tt>, but instead by a
  118. separate service called <tt class="docutils literal"><span class="pre">celerybeat</span></tt>. This is an optimized, centralized
  119. service dedicated to your periodic tasks, which means you don&#8217;t have to
  120. worry about deadlocks or race conditions any more. But that does mean you
  121. have to make sure only one instance of this service is running at any one
  122. time.</p>
  123. <p><strong>TIP:</strong> If you&#8217;re only running a single <tt class="docutils literal"><span class="pre">celeryd</span></tt> server, you can embed
  124. <tt class="docutils literal"><span class="pre">celerybeat</span></tt> inside it. Just add the <tt class="docutils literal"><span class="pre">--beat</span></tt> argument.</p>
  125. </li>
  126. <li><p class="first">Broadcast commands</p>
  127. <p>If you change your mind and don&#8217;t want to run a task after all, you
  128. now have the option to revoke it.</p>
  129. <p>Also, you can rate limit tasks or even shut down the worker remotely.</p>
  130. <p>It doesn&#8217;t have many commands yet, but we&#8217;re waiting for broadcast
  131. commands to reach its full potential, so please share your ideas
  132. if you have any.</p>
  133. </li>
  134. <li><p class="first">Multiple queues</p>
  135. <p>The worker is able to receive tasks on multiple queues at once.
  136. This opens up a lot of new possibilities when combined with the impressive
  137. routing support in AMQP.</p>
  138. </li>
  139. <li><p class="first">Platform agnostic message format.</p>
  140. <p>The message format has been standardized and is now using the ISO-8601 format
  141. for dates instead of Python <tt class="docutils literal"><span class="pre">datetime</span></tt> objects. This means you can write task
  142. consumers in other languages than Python (<tt class="docutils literal"><span class="pre">eceleryd</span></tt> anyone?)</p>
  143. </li>
  144. <li><p class="first">Timely</p>
  145. <p>Periodic tasks are now scheduled on the clock, i.e. <tt class="docutils literal"><span class="pre">timedelta(hours=1)</span></tt>
  146. means every hour at :00 minutes, not every hour from the server starts.
  147. To revert to the previous behavior you have the option to enable
  148. <tt class="xref docutils literal"><span class="pre">PeriodicTask.relative</span></tt>.</p>
  149. </li>
  150. <li><p class="first">... and a lot more!</p>
  151. </li>
  152. </ul>
  153. <p>To read about these and other changes in detail, please refer to
  154. the <a class="reference external" href="http://ask.github.com/celery/changelog.html">changelog</a>. This document contains crucial information for those
  155. upgrading from a previous version of Celery, so be sure to read the entire
  156. change set before you continue.</p>
  157. <p><strong>TIP:</strong> If you install the <tt class="xref docutils literal"><span class="pre">setproctitle</span></tt> module you can see which
  158. task each worker process is currently executing in <tt class="docutils literal"><span class="pre">ps</span></tt> listings.
  159. Just install it using pip: <tt class="docutils literal"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">setproctitle</span></tt>.</p>
  160. </div>
  161. <div class="section" id="resources">
  162. <h2>Resources</h2>
  163. <ul class="simple">
  164. <li><a class="reference external" href="http://celeryproject.org/docs/">Documentation</a></li>
  165. <li><a class="reference external" href="http://celeryproject.org/docs/changelog.html">Changelog</a></li>
  166. <li><a class="reference external" href="http://ask.github.com/celery/faq.html">FAQ</a></li>
  167. <li><a class="reference external" href="http://groups.google.com/group/celery-users">Mailing-list</a></li>
  168. <li><a class="reference external" href="http://twitter.com/asksol">Twitter</a></li>
  169. <li>IRC: #celery on irc.freenode.net.</li>
  170. </ul>
  171. </div>
  172. <div class="hidden">
  173. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  174. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  175. </p>
  176. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  177. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  178. </p>
  179. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  180. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  181. </p>
  182. </div>
  183. </div>
  184. <div class="column">
  185. <span class="newsitem">
  186. <h2>Celery 1.0 released!</h2>
  187. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 10.02.2010</h4>
  188. <p>Celery 1.0 has finally been released! It is available on <a
  189. href="http://pypi.python.org/pypi/celery/1.0.0">PyPI</a> for
  190. downloading. You can also install it via <code>pip install
  191. celery</code>. You can read the announcement <a href="celery_1.0_released.html">here</a>.
  192. <hr>
  193. </span>
  194. <span class="newsitem">
  195. <h2>1.0 is in beta.</h2>
  196. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 08.02.2010</h4>
  197. <p>1.0 is scheduled to be released this week! Please help us test the latest
  198. <a href="http://github.com/ask/celery/tarball/v1.0.0-pre4">release
  199. candiate</a> to make this happen. To upgrade from an earlier
  200. version, please read the <a href="http://ask.github.com/celery/changelog.html">changelog</a>.
  201. <hr>
  202. </span>
  203. <span class="newsitem">
  204. <h2>New website.</h2>
  205. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 08.02.2010</h4>
  206. <p>We finally got a home page. Big thanks to <a href="http://helmersworks.com">Jan Henrik Helmers</a>
  207. <hr>
  208. </span>
  209. </div>
  210. </div>
  211. <div id="credits">
  212. <div class="iStretch">Copyright (c) 2009-2010, <a href="http://twitter.com/asksol">Ask Solem</a> and
  213. <a href="http://github.com/ask/celery/blob/master/AUTHORS">contributors</a>.<br>
  214. Page design by <a href="http://www.helmersworks.com/">Jan Henrik Helmers</a>
  215. </div>
  216. </div>
  217. </div>
  218. </body>
  219. </html>