index.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  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="favicon0.png">
  9. <meta name="viewport" content="width=500, 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="main0000.css"/>
  13. <link rel="stylesheet" href="trac0000.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. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  24. </head>
  25. <body>
  26. <div id="navbar">
  27. <div class="iStretch">
  28. <div class="link" id="current"><a href="index.html">Home</a></div>
  29. <div class="link"><a href="http://github.com/ask/celery">Code</a></div>
  30. <div class="link"><a href="http://celeryq.org/docs/">Documentation</a></div>
  31. <div class="link"><a href="community.html">Community</a></div>
  32. <div class="link"><a href="http://pypi.python.org/pypi/celery#downloads">Download</a></div>
  33. <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  34. <input type="hidden" name="cmd" value="_s-xclick">
  35. <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
  36. ">
  37. <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
  38. <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
  39. </form>
  40. </div>
  41. </div>
  42. <div class="iStretch">
  43. <div id="topcontainer">
  44. <ul>
  45. <li>Background Processing
  46. <li>Distributed
  47. <li>Asynchronous/Synchronous
  48. <li>Concurrency
  49. <li>Periodic Tasks
  50. <li>Retries
  51. </ul>
  52. </div>
  53. <div id="contentcontainer">
  54. <div class="column">
  55. <h2>Distributed Task Queue</h2>
  56. <p> Celery is an asynchronous task queue/job queue based on distributed message passing.
  57. It is focused on real-time operation, but supports scheduling as well.</p>
  58. <p>The execution units, called tasks, are executed concurrently on a single or
  59. more worker servers using multiprocessing, <a href="http://eventlet.net">Eventlet</a>,
  60. or <a href="http://gevent.org">gevent</a>. Tasks can execute asynchronously (in the background) or synchronously
  61. (wait until ready).</p>
  62. <p>Celery is used in production systems to process millions of tasks a day.</p>
  63. <p>Celery is written in Python, but the protocol can be implemented in any
  64. language.
  65. It can also <a href="http://celeryq.org/docs/userguide/remote-tasks.html"
  66. >operate with other languages</a> using webhooks.</p>
  67. <p>The recommended message broker is <a href="http://rabbitmq.com/">RabbitMQ</a>,
  68. but limited support for <a href="http://redisdb.com/">Redis</a>, <a
  69. href="http://kr.github.com/beanstalkd/">Beanstalk</a>, <a
  70. href="http://www.mongodb.org/">MongoDB</a>, <a
  71. href="http://couchdb.apache.org/">CouchDB</a>, and databases
  72. (using <a href="http://www.sqlalchemy.org/">SQLAlchemy</a> or the <a
  73. href="http://djangoproject.com">Django ORM</a>) is also available.</p>
  74. Celery is easy to integrate with Django, Pylons and Flask, using
  75. the <a href="http://pypi.python.org/pypi/django-celery">django-celery</a>,
  76. <a href="http://pypi.python.org/pypi/celery-pylons">celery-pylons</a>
  77. and <a href="http://github.com/ask/flask-celery">flask-celery</a>add-on packages.
  78. <h3>Example</h3>
  79. <p>This is a simple task adding two numbers:</p>
  80. <div class="highlight"><pre><span class="kn">from</span> <span class="nn">celery.task</span> <span class="kn">import</span> <span class="n">task</span>
  81. <span class="nd">@task</span>
  82. <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
  83. <span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span>
  84. </pre></div>
  85. <p>You can execute the task in the background, or wait for it to
  86. finish:</p>
  87. <div class="highlight"><pre><span class="o">&gt;&gt;&gt;</span> <span class="n">result</span> <span class="o">=</span> <span class="n">add</span><span class="o">.</span><span class="n">delay</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">)</span>
  88. <span class="o">&gt;&gt;&gt;</span> <span class="n">result</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span> <span class="c"># wait for and return the result</span>
  89. <span class="mi">16</span>
  90. </pre></div>
  91. <h3>Getting Started</h3>
  92. <ol>
  93. <li>Install celery by download or <code>pip install -U Celery</code></li>
  94. <li>Set up <a href="http://celeryq.org/docs/getting-started/broker-installation.html">RabbitMQ</a>
  95. or one of the <a href="http://celeryq.org/docs/tutorials/otherqueues.html">ghetto queue</a>
  96. solutions.
  97. <li>Select one of the following guides:
  98. <ul>
  99. <li><a
  100. href="http://celeryq.org/docs/getting-started/first-steps-with-celery.html">First steps with Python</a></li>
  101. <li><a href="http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html">First steps with Django</a></li>
  102. </ul>
  103. </ol>
  104. <h3>Community</h3>
  105. <p>There is a <a href="http://groups.google.com/group/celery-users">mailing-list</a>
  106. available for general discussion.</p>
  107. <p>For those craving real, human interaction, there is also an IRC channel
  108. (<code>#celery</code> on <code>irc.freenode.net</code>).</p>
  109. <p>Finally, if you find a bug or would like to request a feature,
  110. please <a href="http://github.com/ask/celery/issues">submit an
  111. issue</a>.</p>
  112. <a name="donate"></a>
  113. <h3>Donate</h3>
  114. <p>
  115. <a href='http://www.pledgie.com/campaigns/8424'><img alt='Click here to lend your support to: celery and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/8424.png?skin_name=chrome' border='0' /></a>
  116. </p>
  117. <p>Donations will be used to fund infrastructure and new features.</p>
  118. <p>
  119. You can <a href='http://www.pledgie.com/campaigns/8424'
  120. target='_new'>donate to the project</a> using PayPal.
  121. For other arrangements you can send an e-mail to
  122. <a href="mailto:donate@celeryproject">donate@celeryproject.org</a>.
  123. <div class="hidden">
  124. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  125. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  126. </p>
  127. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  128. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  129. </p>
  130. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  131. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  132. </p>
  133. </div>
  134. </div>
  135. <div class="column side">
  136. <span class="newsitem">
  137. <h2>Celery 2.1.1 bugfix release</h2>
  138. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-10-14.</h4>
  139. <p>All users are urged to upgrade. For a list of changes see the
  140. <a href="http://celeryq.org/docs/changelog.html">Changelog</a>.</p>
  141. <p>Users of Django must also upgrade to
  142. <a href="http://pypi.python.org/pypi/django-celery">django-celery 2.1.1</a>.</p>
  143. </span>
  144. <span class="newsitem">
  145. <h2>Celery 2.1 released!</h2>
  146. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-10-08.</h4>
  147. <p>This new version is now available at PyPI. Be sure to read the
  148. <a href="http://celeryq.org/docs/changelog.html">Changelog</a> before upgrading.</p>
  149. </span>
  150. <span class="newsitem">
  151. <h2>Celery 2.0 released!</h2>
  152. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-07-02.</h4>
  153. <p>We're proud to announce the release of Celery 2.0. This version replaces
  154. the Django ORM with SQLAlchemy as the database result store. With this, Celery no
  155. longer depends on Django. Django integration is now available as a separate package
  156. called <a href="http://pypi.python.org/pypi/django-celery">django-celery</a>.
  157. </p>
  158. <p>In addition there are a lot of new features: a curses monitor, time
  159. limits, complex crontab expressions, callbacks, simplified routing,
  160. and more. Everything is detailed in the <a
  161. href="http://celeryq.org/docs/changelog.html#id1">Changelog</a>,
  162. so be sure to read it before upgrading.</p>
  163. </span>
  164. <span class="newsitem">
  165. <h2>Celery 1.0.6 released!</h2>
  166. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-06-30.</h4>
  167. <p>RabbitMQ 1.8.0 came with stricter equivalence checks that broke the
  168. AMQP result backend, this release resolves this. If you've already used
  169. the AMQP backend you need to delete the previous declarations. For
  170. instructions please read the full
  171. <a href="http://celeryproject.org/docs/changelog.html">Changelog</a>.
  172. Download from <a href="http://pypi.python.org/pypi/celery/1.0.6">PyPI</a>,
  173. or simply install the upgrade using <code>pip install -U Celery==1.0.6</code>.
  174. <hr>
  175. </span>
  176. <span class="newsitem">
  177. <h2>Celery 1.0.5 released!</h2>
  178. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-06-01.</h4>
  179. <p>This release contains some important bug fixes related to shutdown and
  180. broker connection loss, as well as some other minor fixes. Also
  181. AbortableTask has been added to contrib. Please read the full <a href="http://celeryproject.org/docs/changelog.html">Changelog</a>
  182. before you upgrade. Download from <a href="http://pypi.python.org/pypi/celery/1.0.5">PyPI</a>,
  183. or simply install the upgrade using <code>pip install -U Celery</code>.
  184. <hr>
  185. </span>
  186. <span class="newsitem">
  187. <h2>Celery 1.0.3 released!</h2>
  188. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-05-15.</h4>
  189. <p>This release contains a drastic improvement in reliability and
  190. performance. Please read the full <a href="http://celeryproject.org/docs/changelog.html">Changelog</a>
  191. before you upgrade. Download from <a href="http://pypi.python.org/pypi/celery/1.0.3">PyPI</a>,
  192. or simply install the upgrade using <code>pip install -U Celery</code>.
  193. <hr>
  194. </span>
  195. <span class="newsitem">
  196. <h2>Celery 1.0.1 released!</h2>
  197. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-03-20.</h4>
  198. <p>This is a bugfix release and has some important changes to the
  199. shutdown procedure. Also improved compatibility with Windows and Python
  200. 2.4. Read the full <a href="http://celeryproject.org/docs/changelog.html">Changelog</a>
  201. for more information. Download from <a
  202. href="http://pypi.python.org/pypi/celery/1.0.1">PyPI</a>,
  203. or simply install the upgrade using <code>pip install -U Celery</code>.
  204. <hr>
  205. </span>
  206. <span class="newsitem">
  207. <h2>Celery 1.0 released!</h2>
  208. <h4>By <a href="http://twitter.com/asksol">@asksol</a> on 2010-02-10</h4>
  209. <p>Celery 1.0 has finally been released! It is available on <a
  210. href="http://pypi.python.org/pypi/celery/1.0.0">PyPI</a> for
  211. downloading. You can also install it via <code>pip install
  212. Celery</code>. You can read the announcement <a href="http://celeryproject.org/celery_1.0_released.html">here</a>.
  213. <hr>
  214. </span>
  215. </div>
  216. <div style="clear:both"></div>
  217. </div>
  218. <div id="credits">
  219. <ul>
  220. <li>
  221. <strong>Copyright (c) 2009-2011</strong>
  222. <span><a href="http://twitter.com/asksol">Ask Solem</a> and
  223. <a href="http://github.com/ask/celery/blob/master/AUTHORS">contributors</a>.</span>
  224. </li>
  225. <li>
  226. <strong>Web Design</strong>
  227. <span><a href="http://www.helmersworks.com/">Jan Henrik Helmers</a></span>
  228. </li>
  229. </ul>
  230. </div>
  231. </div>
  232. </body>
  233. </html>
  234. <!-- This document saved from http://celeryproject.org/ -->