kombu v1.3.0 Release Notes
-
🚀 :release-date: 2011-10-05 01:00 P.M BST 🚀 :release-by: Ask Solem
Broker connection info can be now be specified using URLs
The broker hostname can now be given as a URL instead, of the format:
.. code-block:: text
transport://user:password@hostname:port/virtual_host
for example the default broker is expressed as:
.. code-block:: pycon
>>> Connection('amqp://guest:guest@localhost:5672//')
Transport defaults to amqp, and is not required. user, password, port and virtual_host is also not mandatory and will default to the corresponding transports default.
.. note::
Note that the path component (virtual_host) always starts with a forward-slash. This is necessary to distinguish between the virtual host '' (empty) and '/', which are both acceptable virtual host names. A virtual host of '/' becomes:: .. code-block:: text amqp://guest:guest@localhost:5672// and a virtual host of '' (empty) becomes: .. code-block:: text amqp://guest:guest@localhost:5672/ So the leading slash in the path component is **always required**.
0️⃣ Now comes with default global connection and producer pools.
The acquire a connection using the connection parameters from a :class:
Connection
:.. code-block:: pycon
>>> from kombu import Connection, connections >>> connection = Connection('amqp://guest:guest@localhost//') >>> with connections[connection].acquire(block=True): ... # do something with connection
To acquire a producer using the connection parameters from a :class:
Connection
:.. code-block:: pycon
>>> from kombu import Connection, producers >>> connection = Connection('amqp://guest:guest@localhost//') >>> with producers[connection].acquire(block=True): ... producer.publish({'hello': 'world'}, exchange='hello')
Acquiring a producer will in turn also acquire a connection from the associated pool in
connections
, so you the number of producers is bound the same limit as number of connections.The default limit of 100 connections per connection instance can be changed by doing:
.. code-block:: pycon
>>> from kombu import pools >>> pools.set_limit(10)
The pool can also be forcefully closed by doing:
.. code-block:: pycon
>>> from kombu import pools >>> pool.reset()
0️⃣ SQS Transport: Persistence using SimpleDB is now disabled by default, after reports of unstable SimpleDB connections leading to errors.
:class:
Producer
can now be used as a context manager.Producer.__exit__
now properly callsrelease
instead of close.The previous behavior would lead to a memory leak when using the :class:
kombu.pools.ProducerPool
Now silences all exceptions from
import ctypes
to match behaviour of the standard Python uuid module, and avoid passing on MemoryError exceptions on SELinux-enabled systems (Issue #52 + Issue #53)amqp
is now an alias to theamqplib
transport.0️⃣
kombu.syn.detect_environment
now returns 'default', 'eventlet', or 'gevent' depending on what monkey patches have been installed.Serialization registry has new attribute
type_to_name
so it is possible to lookup serializater name by content type.Exchange argument to
Producer.publish
can now be an :class:Exchange
instance.👍
compat.Publisher
now supports thechannel
keyword argument.Acking a message on some transports could lead to :exc:
KeyError
being raised (Issue #57).Connection pool: Connections are no long instantiated when the pool is created, but instantiated as needed instead.
✅ Tests now pass on PyPy.
Connection.as_uri
now includes the password if the keyword argumentinclude_password
is set.Virtual transports now comes with a default
default_connection_params
attribute.
.. _version-1.2.1: