Changelog 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. ==============
  2. Change history
  3. ==============
  4. 0.2.0-pre3 [2009-05-20 05:14 P.M CET] askh@opera.com
  5. ----------------------------------------------------
  6. * *Internal release*. Improved handling of unpickled exceptions,
  7. get_result() now tries to recreate something looking like the
  8. original exception.
  9. 0.2.0-pre2 [2009-05-20 01:56 P.M CET] askh@opera.com
  10. ----------------------------------------------------
  11. * Now handles unpickleable exceptions (like the dynimically generated
  12. subclasses of ``django.core.exception.MultipleObjectsReturned``).
  13. 0.2.0-pre1 [2009-05-20 12:33 P.M CET] askh@opera.com
  14. ----------------------------------------------------
  15. * It's getting quite stable, with a lot of new features, so bump
  16. version to 0.2. This is a pre-release.
  17. * ``celery.task.mark_as_read()`` and ``celery.task.mark_as_failure()`` has
  18. been removed. Use ``celery.backends.default_backend.mark_as_read()``,
  19. and ``celery.backends.default_backend.mark_as_failure()`` instead.
  20. 0.1.15 [2009-05-19 04:13 P.M CET] askh@opera.com
  21. ------------------------------------------------
  22. * The celery daemon was leaking AMQP connections, this should be fixed,
  23. if you have any problems with too many files open (like ``emfile``
  24. errors in ``rabbit.log``, please contact us!
  25. 0.1.14 [2009-05-19 01:08 P.M CET] askh@opera.com
  26. ------------------------------------------------
  27. * Fixed a syntax error in the ``TaskSet`` class. (No such variable
  28. ``TimeOutError``).
  29. 0.1.13 [2009-05-19 12:36 P.M CET] askh@opera.com
  30. ------------------------------------------------
  31. * Forgot to add ``yadayada`` to install requirements.
  32. * Now deletes all expired task results, not just those marked as done.
  33. * Able to load the Tokyo Tyrant backend class without django
  34. configuration, can specify tyrant settings directly in the class
  35. constructor.
  36. * Improved API documentation
  37. * Now using the Sphinx documentation system, you can build
  38. the html documentation by doing ::
  39. $ cd docs
  40. $ make html
  41. and the result will be in ``docs/.build/html``.
  42. 0.1.12 [2009-05-18 04:38 P.M CET] askh@opera.com
  43. ------------------------------------------------
  44. * ``delay_task()`` etc. now returns ``celery.task.AsyncResult`` object,
  45. which lets you check the result and any failure that might have
  46. happened. It kind of works like the ``multiprocessing.AsyncResult``
  47. class returned by ``multiprocessing.Pool.map_async``.
  48. * Added dmap() and dmap_async(). This works like the
  49. ``multiprocessing.Pool`` versions except they are tasks
  50. distributed to the celery server. Example:
  51. >>> from celery.task import dmap
  52. >>> import operator
  53. >>> dmap(operator.add, [[2, 2], [4, 4], [8, 8]])
  54. >>> [4, 8, 16]
  55. >>> from celery.task import dmap_async
  56. >>> import operator
  57. >>> result = dmap_async(operator.add, [[2, 2], [4, 4], [8, 8]])
  58. >>> result.ready()
  59. False
  60. >>> time.sleep(1)
  61. >>> result.ready()
  62. True
  63. >>> result.result
  64. [4, 8, 16]
  65. * Refactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. e.g
  66. CELERY_BACKEND = "database"; # Uses the database
  67. CELERY_BACKEND = "cache"; # Uses the django cache framework
  68. CELERY_BACKEND = "tyrant"; # Uses Tokyo Tyrant
  69. TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server.
  70. TT_PORT = 6657; # Port of the Tokyo Tyrant server.
  71. 0.1.11 [2009-05-12 02:08 P.M CET] askh@opera.com
  72. -------------------------------------------------
  73. * The logging system was leaking file descriptors, resulting in
  74. servers stopping with the EMFILES (too many open files) error. (fixed)
  75. 0.1.10 [2009-05-11 12:46 P.M CET] askh@opera.com
  76. -------------------------------------------------
  77. * Tasks now supports both positional arguments and keyword arguments.
  78. * Requires carrot 0.3.8.
  79. * The daemon now tries to reconnect if the connection is lost.
  80. 0.1.8 [2009-05-07 12:27 P.M CET] askh@opera.com
  81. ------------------------------------------------
  82. * Better test coverage
  83. * More documentation
  84. * celeryd doesn't emit ``Queue is empty`` message if
  85. ``settings.CELERYD_EMPTY_MSG_EMIT_EVERY`` is 0.
  86. 0.1.7 [2009-04-30 1:50 P.M CET] askh@opera.com
  87. -----------------------------------------------
  88. * Added some unittests
  89. * Can now use the database for task metadata (like if the task has
  90. been executed or not). Set ``settings.CELERY_TASK_META``
  91. * Can now run ``python setup.py test`` to run the unittests from
  92. within the ``testproj`` project.
  93. * Can set the AMQP exchange/routing key/queue using
  94. ``settings.CELERY_AMQP_EXCHANGE``, ``settings.CELERY_AMQP_ROUTING_KEY``,
  95. and ``settings.CELERY_AMQP_CONSUMER_QUEUE``.
  96. 0.1.6 [2009-04-28 2:13 P.M CET] askh@opera.com
  97. -----------------------------------------------
  98. * Introducing ``TaskSet``. A set of subtasks is executed and you can
  99. find out how many, or if all them, are done (excellent for progress bars and such)
  100. * Now catches all exceptions when running ``Task.__call__``, so the
  101. daemon doesn't die. This does't happen for pure functions yet, only
  102. ``Task`` classes.
  103. * ``autodiscover()`` now works with zipped eggs.
  104. * celeryd: Now adds curernt working directory to ``sys.path`` for
  105. convenience.
  106. * The ``run_every`` attribute of ``PeriodicTask`` classes can now be a
  107. ``datetime.timedelta()`` object.
  108. * celeryd: You can now set the ``DJANGO_PROJECT_DIR`` variable
  109. for ``celeryd`` and it will add that to ``sys.path`` for easy launching.
  110. * Can now check if a task has been executed or not via HTTP.
  111. You can do this by including the celery ``urls.py`` into your project,
  112. >>> url(r'^celery/$', include("celery.urls"))
  113. then visiting the following url,::
  114. http://mysite/celery/$task_id/done/
  115. this will return a JSON dictionary like e.g:
  116. >>> {"task": {"id": $task_id, "executed": true}}
  117. * ``delay_task`` now returns string id, not ``uuid.UUID`` instance.
  118. * Now has ``PeriodicTasks``, to have ``cron`` like functionality.
  119. * Project changed name from ``crunchy`` to ``celery``. The details of
  120. the name change request is in ``docs/name_change_request.txt``.
  121. 0.1.0 [2009-04-24 11:28 A.M CET] askh@opera.com
  122. ------------------------------------------------
  123. * Initial release