diff options
author | Ask Solem <ask@celeryproject.org> | 2016-10-24 13:14:25 -0700 |
---|---|---|
committer | Ask Solem <ask@celeryproject.org> | 2016-10-24 13:14:25 -0700 |
commit | 441a7381029c47c97cb6a09986d2877cff6a20c0 (patch) | |
tree | f7aa1d5929945ce48abc70f3d182436773d07ece /Changelog | |
parent | c7fe94fa059b4a5f291d7366eeeaa99daf37164a (diff) | |
download | kombu-441a7381029c47c97cb6a09986d2877cff6a20c0.tar.gz |
Updates Changelog
Diffstat (limited to 'Changelog')
-rw-r--r-- | Changelog | 138 |
1 files changed, 136 insertions, 2 deletions
@@ -12,12 +12,51 @@ - Now depends on :mod:`amqp` 2.0.0. + The new py-amqp version have been refactored for better performance, + using modern Python socket conventions, and API consistency. + - No longer depends on :mod:`anyjson`. + Kombu will now only choose between :pypi:`simplejson` and the built-in + :mod:`json`. + + Using the latest version of simplejson is recommended: + + .. code-block:: console + + $ pip install -U simplejson + +- Removed transports that are no longer supported in this version: + + - Django ORM transport + - SQLAlchemy ORM transport + - Beanstalk transport + - ZeroMQ transport + - amqplib transport (use pyamqp). + - New SQS transport Donated by NextDoor, with additional contributions from mdk. + .. note:: + + ``kombu[sqs]`` now depends on :pypi:`pycurl`. + +- New Consul transport. + + Contributed by **Wido den Hollander**. + +- New etcd transport. + + Contributed by **Stephen Milner**. + +- New Qpid transport. + + It was introduced as an experimental transport in Kombu 3.0, but is now + mature enough to be fully supported. + + Created and maintained by **Brian Bouterse**. + - Redis: Priority 0 is now lowest, 9 is highest. (**backward incompatible**) @@ -25,6 +64,20 @@ Fix contributed by **Alex Koshelev**. +- Redis: Support for Sentinel + + You can point the connection to a list of sentinel URLs like: + + .. code-block:: text + + sentinel://0.0.0.0:26379;sentinel://0.0.0.0:26380/... + + where each sentinel is separated by a `;`. Multiple sentinels are handled + by :class:`kombu.Connection` constructor, and placed in the alternative + list of servers to connect to in case of connection failure. + + Contributed by **Sergey Azovskov**, and **Lorenzo Mancini** + - RabbitMQ Queue Extensions New arguments have been added to :class:`kombu.Queue` that lets @@ -61,6 +114,61 @@ See :attr:`kombu.Queue.max_priority`. +- RabbitMQ: ``Message.ack`` now supports the ``multiple`` argument. + + If multiple is set to True, then all messages received before + the message being acked will also be acknowledged. + +- ``amqps://`` can now be specified to require SSL (Issue #610). + +- ``Consumer.cancel_by_queue`` is now constant time. + +- ``Connection.ensure*`` now raises :exc:`kombu.exceptions.OperationalError`. + + Things that can be retried are now reraised as + :exc:`kombu.exceptions.OperationalError`. + +- Redis: Fixed SSL support. + + Contributed by **Robert Kolba**. + +- New ``Queue.consumer_arguments`` can be used for the ability to + set consumer priority via ``x-priority``. + + See https://www.rabbitmq.com/consumer-priority.html + + Example: + + .. code-block:: python + + consumer = Consumer(channel, consumer_arguments={'x-priority': 3}) + +- Queue/Exchange: ``no_declare`` option added (also enabled for + internal amq. exchanges) (Issue #565). + +- JSON serializer now calls ``obj.__json__`` for unsupported types. + + This means you can now define a ``__json__`` method for custom + types that can be reduced down to a built-in json type. + + Example: + + .. code-block:: python + + class Person: + first_name = None + last_name = None + address = None + + def __json__(self): + return { + 'first_name': self.first_name, + 'last_name': self.last_name, + 'address': self.address, + } + +- JSON serializer now handles datetimes, Django promise, UUID and Decimal. + - Beanstalk: Priority 0 is now lowest, 9 is highest. (**backward incompatible**) @@ -101,9 +209,9 @@ - ``reply_queue_expires`` (float/int seconds). - ``reply_queue_ttl`` (float/int seconds). - Contributed by **Alan Justino**. + All take seconds in int/float. -All take seconds in int/float. + Contributed by **Alan Justino**. - Exchange.delivery_mode now defaults to :const:`None`, and the default is instead set by ``Producer.publish``. @@ -145,16 +253,42 @@ All take seconds in int/float. Contributed by **Alex Koshelev**. +- Virtual transports now supports multiple queue bindings. + + Contributed by **Federico Ficarelli**. + +- Virtual transports now supports the anon exchange. + + If when publishing a message, the exchange argument is set to '' (empty + string), the routing_key will be regarded as the destination queue. + + This will bypass the routing table compeltely, and just deliver the + message to the queue name specified in the routing key. + - Zookeeper: Transport now uses the built-in suport in kazoo to handle failover when using a list of server names. Contributed by **Joshua Harlow**. +- ConsumerMixin.run now passes keyword arguments to .consume. + +Deprecations and removals +------------------------- + +- The deprecated method ``Consumer.add_queue_from_dict`` has been removed. + + Use instead: + + .. code-block:: python + + consumer.add_queue(Queue.from_dict(queue_name, **options)) + - Removed module ``kombu.syn`` ``detect_environment`` has been moved to kombu.utils.compat + .. _version-3.0.35: 3.0.35 |