All Versions
Latest Version
Avg Release Cycle
42 days
Latest Release

Changelog History
Page 10

  • v2.5.0 Changes

    ๐Ÿš€ :release-date: 2012-11-27 04:00 P.M UTC ๐Ÿš€ :release-by: Ask Solem

    • 0๏ธโƒฃ py-amqp_ is now the new default transport, replacing amqplib.

      The new py-amqp_ library is a fork of amqplib started with the following goals:

      - Uses AMQP 0.9.1 instead of 0.8
      - Support for heartbeats (Issue #79 + Issue #131)
      - Automatically revives channels on channel errors.
      - Support for all RabbitMQ extensions
          - Consumer Cancel Notifications (Issue #131)
          - Publisher Confirms (Issue #131).
          - Exchange-to-exchange bindings: ``exchange_bind`` / ``exchange_unbind``.
      - API compatible with :mod:`librabbitmq` so that it can be used
        as a pure-python replacement in environments where rabbitmq-c cannot
        be compiled.  librabbitmq will be updated to support all the same
        features as py-amqp.
    • ๐Ÿ‘Œ Support for using multiple connection URL's for failover.

      The first argument to :class:~kombu.Connection can now be a list of connection URLs:

      .. code-block:: python

      Connection(['amqp://foo', 'amqp://bar'])

      or it can be a single string argument with several URLs separated by semicolon:

      .. code-block:: python


      There is also a new keyword argument failover_strategy that defines how :meth:~kombu.Connection.ensure_connection/ :meth:~kombu.Connection.ensure/:meth:kombu.Connection.autoretry will reconnect in the event of connection failures.

      The default reconnection strategy is round-robin, which will simply cycle through the list forever, and there's also a shuffle strategy that will select random hosts from the list. Custom strategies can also be used, in that case the argument must be a generator yielding the URL to connect to.


      .. code-block:: python

    • ๐Ÿ‘• Now supports PyDev, PyCharm, pylint and other static code analysis tools.

    • ๐Ÿ‘ :class:~kombu.Queue now supports multiple bindings.

      You can now have multiple bindings in the same queue by having the second argument be a list:

      .. code-block:: python

      from kombu import binding, Queue
      Queue('name', [
          binding(Exchange('E1'), routing_key='foo'),
          binding(Exchange('E1'), routing_key='bar'),
          binding(Exchange('E2'), routing_key='baz'),

      To enable this, helper methods have been added:

      - :meth:`~kombu.Queue.bind_to`
      - :meth:`~kombu.Queue.unbind_from`

      Contributed by Rumyana Neykova.

    • Custom serializers can now be registered using Setuptools entry-points.

      See :ref:serialization-entrypoints.

    • ๐Ÿ†• New :class:kombu.common.QoS class used as a thread-safe way to manage changes to a consumer or channels prefetch_count.

      This was previously an internal class used in Celery now moved to the :mod:kombu.common module.

    • ๐Ÿ‘ Consumer now supports a on_message callback that can be used to process raw messages (not decoded).

      Other callbacks specified using the callbacks argument, and the receive method will be not be called when a on message callback is present.

    • ๐Ÿ†• New utility :func:kombu.common.ignore_errors ignores connection and channel errors.

      Must only be used for cleanup actions at shutdown or on connection loss.

    • ๐Ÿ‘Œ Support for exchange-to-exchange bindings.

      The :class:~kombu.Exchange entity gained bind_to and unbind_from methods:

      .. code-block:: python

      e1 = Exchange('A')(connection)
      e2 = Exchange('B')(connection)
      e2.bind_to(e1, routing_key='rkey', arguments=None)
      e2.unbind_from(e1, routing_key='rkey', arguments=None)

      This is currently only supported by the pyamqp transport.

      Contributed by Rumyana Neykova.

    .. _version-2.4.10:

  • v2.4.10 Changes

    ๐Ÿš€ :release-date: 2012-11-22 06:00 P.M UTC ๐Ÿš€ :release-by: Ask Solem

    • ๐Ÿ‘ The previous versions connection pool changes broke Redis support so that it would always connect to localhost (default setting) no matter what connection parameters were provided (Issue #176).

    .. _version-2.4.9:

  • v2.4.9 Changes

    ๐Ÿš€ :release-date: 2012-11-21 03:00 P.M UTC ๐Ÿš€ :release-by: Ask Solem

    • โช Redis: Fixed race condition that could occur while trying to restore messages (Issue #171).

      Fix contributed by Ollie Walsh.

    • Redis: Each channel is now using a specific connection pool instance, which is disconnected on connection failure.

    • ๐Ÿ”’ ProducerPool: Fixed possible dead-lock in the acquire method.

    • ProducerPool: force_close_all no longer tries to call the non-existent Producer._close.

    • librabbitmq: Now implements transport.verify_connection so that connection pools will not give back connections that are no longer working.

    • ๐Ÿ†• New and better repr() for Queue and Exchange objects.

    • โœ… Python 3: Fixed problem with running the unit test suite.

    • ๐Ÿ›  Python 3: Fixed problem with JSON codec.

    .. _version-2.4.8:

  • v2.4.8 Changes

    ๐Ÿš€ :release-date: 2012-11-02 05:00 P.M UTC ๐Ÿš€ :release-by: Ask Solem

    • Redis: Improved fair queue cycle implementation (Issue #166).

      Contributed by Kevin McCarthy.

    • โช Redis: Unacked message restore limit is now unlimited by default.

      Also, the limit can now be configured using the unacked_restore_limit transport option:

      .. code-block:: python

      Connection('redis://', transport_options={
          'unacked_restore_limit': 100,
      A limit of 100 means that the consumer will restore at most 100
      messages at each pass.
    • โช Redis: Now uses a mutex to ensure only one consumer restores messages at a time.

      The mutex expires after 5 minutes by default, but can be configured using the unacked_mutex_expire transport option.

    • LamportClock.adjust now returns the new clock value.

    • Heartbeats can now be specified in URLs.

      Fix contributed by Mher Movsisyan.

    • Kombu can now be used with PyDev, PyCharm and other static analysis tools.

    • ๐Ÿ›  Fixes problem with msgpack on Python 3 (Issue #162).

      Fix contributed by Jasper Bryant-Greene

    • ๐Ÿ›  amqplib: Fixed bug with timeouts when SSL is used in non-blocking mode.

      Fix contributed by Mher Movsisyan

    .. _version-2.4.7:

  • v2.4.7 Changes

    ๐Ÿš€ :release-date: 2012-09-18 03:00 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • 0๏ธโƒฃ Virtual: Unknown exchanges now default to 'direct' when sending a message.

    • ๐Ÿ”€ MongoDB: Fixed memory leak when merging keys stored in the db (Issue #159)

      Fix contributed by Michael Korbakov.

    • ๐Ÿ‘ MongoDB: Better index for MongoDB transport (Issue #158).

      This improvement will create a new compund index for queue and _id in order to be able to use both indexed fields for getting a new message (using queue field) and sorting by _id. It'll be necessary to manually delete the old index from the collection.

      Improvement contributed by rmihael

    .. _version-2.4.6:

  • v2.4.6 Changes

    ๐Ÿš€ :release-date: 2012-09-12 03:00 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • โž• Adds additional compatibility dependencies:

      • Python <= 2.6:

        • importlib
        • ordereddict
      • Python <= 2.5

        • simplejson

    .. _version-2.4.5:

  • v2.4.5 Changes

    ๐Ÿš€ :release-date: 2012-08-30 03:36 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • Last version broke installtion on PyPy and Jython due to test requirements clean-up.

    .. _version-2.4.4:

  • v2.4.4 Changes

    ๐Ÿš€ :release-date: 2012-08-29 04:00 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • ๐Ÿ›  amqplib: Fixed a bug with asynchronously reading large messages.

    • pyamqp: Now requires amqp 0.9.3

    • โœ… Cleaned up test requirements.

    .. _version-2.4.3:

  • v2.4.3 Changes

    ๐Ÿš€ :release-date: 2012-08-25 10:30 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • ๐Ÿ›  Fixed problem with amqp transport alias (Issue #154).

    .. _version-2.4.2:

  • v2.4.2 Changes

    ๐Ÿš€ :release-date: 2012-08-24 05:00 P.M BST ๐Ÿš€ :release-by: Ask Solem

    • Having an empty transport name broke in 2.4.1.

    .. _version-2.4.1: