The concurrent.futures module is one of the ways that async activities can be done in the future, so we should try to work on getting to that future by using more futures. To enable this (as well as to enable getting off eventlet), add a thread pool based executor which will process incoming messages using the pool. Also begins adding according docs as well for the different types of executors that are available. Change-Id: I1482fd70abbf69f4e2994597c5e95d91fecb815e
13 KiB
oslo.messaging
The Oslo messaging API supports RPC and notifications over a number of different messsaging transports.
Contents
transport executors target server rpcclient notifier notification_listener serializer exceptions opts conffixture AMQP1.0 contributing
Release Notes
1.4.0.0a4
Changes since 1.4.0.0a3:
- 1314129: on python 2.6 use simplejson for better performance
- 1342088: fix bogus locking in fake driver
- Enabled hacking checks H305 and H307
Thanks to Christian Berendt, Ihar Hrachyshka and Nejc Saje for their contributions to this release.
1.4.0.0a3
Changes since 1.4.0.0a2:
- cleanup: replaced 'e.g.' with 'for example'.
- trollius: fix AMQPListener for polling with timeout.
- cleanup: fixed pep8 issue E265.
- docs: remove duplicate docs for MessageHandlingServer.
- docs: add 'docs' tox environment.
- cleanup: use assertEqual() instead assertIs() for strings.
- tests: re-organize the unit tests directory.
Thanks to Boris Pavlovic, Christian Berendt, Mark McLoughlin, Victor Stinner and YAMAMOTO Takashi for their contributions to this release.
1.4.0.0a2
Changes since 1.4.0.0a1:
- docs: fix Notifier instantiation example.
- docs: cleanup formatting of examples in TransportURL docs.
- tests: fix slow notification listener unit tests.
- cleanup: remove unprintable character from source file.
- python3: replace usage of str() with six.text_type.
Thanks to Aaron Rosen, Gauvain Pocentek, Mark McLoughlin, Paul Michali and Thomas Herve for their contributions to this release.
1.4.0.0a1
Changes since 1.3.0:
Dependency changes:
- Newer oslo.config is required (1.2.1, previously 1.2.0)
- Newer six is required (1.7.0, previously 1.5.2)
- Hacking 0.9.1 is now required for testing (previously 0.8.0)
New features:
- 1282639: A new 'retry' parameter to control transport reconnection retries in RPC clients and notifiers.
- 1316891: TransportURL objects are now hashable.
- Full support of multiple hosts in transport URLs.
- Listener.poll() now has an optional timeout parameter in preparion for trollius/asyncio support.
Bug fixes:
- 1316681: Fix the notify method of the routing notifier.
- 1325750: Clarify confusing rabbitmq log message if credentials checking fails.
- 1256345: Allow setting 'exchange' in the target object used by RPC clients and servers.
- 1310397: Enable log messages to handle exceptions containing unicode.
- 1314129: Synced jsonutils from oslo-incubator to solve slowness on python 2.6.
Logging:
- Initial infrastructure to allow translating log messages.
- 1321274: Replace string format arguments with function parameters.
- 1317950: Debug level logs should not be translated.
- 1286306: Remove str() from LOG.* and exceptions.
Python3:
- Removes use of contextlib.nested.
- 1280033: Use six rather than the py3kcompat oslo-incubator module.
Tests:
- Import run_cross_tests.sh from oslo-incubator.
- Ensures listener queues exist in fake driver.
- 1331459: Disable connection pool in qpid interfaces tests.
- 1283926: Fixed the issue for pop exception (rabbit tests race condition).
RabbitMQ driver:
- 1261631: Select AMQP message broker at random.
Qpid driver:
- 1318742: Explicitly name subscription queue for responses.
- 1300318: Ensure routing key is specified in the address for a direct producer.
- 1261631: Select AMQP message broker at random.
- 1303890: Update ensure()/reconnect() to catch MessagingError.
ZeroMQ driver:
- 1330460: Handle unused allowed_remote_exmods in _multi_send.
- 1332588: Set correct group for matchmaker_redis options.
- 1301132: zmq: switch back to not using message envelopes.
- Fix passing envelope variable as timeout.
- 1300539: Logical error in blockless fanout of zmq.
- 1301132: Oslo-messaging-zmq-receiver cannot recive any messages.
Docs:
- RPC server doc: use the blocking executor.
- Cleaned up references to executor specific RPCServer types.
- Add an example usage of RPCClient retry parameter.
- Fix typo in docstring of notify/notifier.
Cleanups:
- Improve layout of unit test directory.
- 1327473: Removes the use of mutables as default args.
- rabbit/qpid: remove the args/kwargs from ensure().
- Removes unused config option - allowed_rpc_exception_modules
- 1323975: remove default=None for config options
- Use a for loop to set the defaults for __call__ params
- Use mock's call assert methods over call_args_list
- Remove rendundant parentheses of cfg help strings
- Remove old drivers dead code
- 1277104: Trival:Fix assertEqual arguments order
Thanks to Aaron Rosen, Ala Rezmerita, Andreas Jaeger, Boris Pavlovic, ChangBo Guo, Christian Berendt, Davanum Srinivas, Doug Hellmann, Elena Ezhova, Eric Guo, Gauvain Pocentek, Gordon Sim, Ihar Hrachyshka, James Carey, Jamie Lennox, Joshua Harlow, Li Ma, Mark McLoughlin, Mehdi Abaakouk, Numan Siddique, Russell Bryant, Victor Stinner and zhangjialong for their contributions to this release.
1.3.1
Changes since 1.3.0:
- 1318742: Explicitly name subscription queue for responses.
- 1300318: Ensure routing key is specified in the address for a direct producer.
- 1303890: Update ensure()/reconnect() to catch MessagingError.
- 1283926: Fixed the issue for pop exception (rabbit tests race condition).
- Ensures listener queues exist in fake driver.
- Fixes incorrect exchange lock in fake driver
Thanks to Alan Pevec, Gordon Sim, Mark McLoughlin, Matt Riedemann, Mehdi Abaakouk, Nejc Saje, Numan Siddique and Russell Bryant for their contributions to this release.
1.3.0
Changes since 1.3.0a9:
- Expose LoggingErrorNotificationHandler in the public API
- 1288425: Add kombu driver library to requirements.txt
- 1255239: Add unit tests for the qpid driver
- 1261631: Add unit test for Qpid reconnect order
- 1282706: Fixed inconsistent eventlet test failures
- 1297161: Fixed pep8 failure due to pyflakes bug
- 1286984: Build log_handler documentation
Thanks to Alex Holden, ChangBo Guo, Clint Byrum, Doug Hellmann, Ihar Hrachyshka, Lance Bragstad and Numan Siddique for their contributions to this release.
1.3.0a9
Changes since 1.3.0a8:
- 856764: Handle RabbitMQ consumer cancel notifications
- 856764: Slow down RabbitMQ reconnection attempts
- 1287542: Fix issue with duplicate SSL config options registered
Thanks to Chet Burgess, Doug Hellmann and Nicolas Simonds for their contributions to this release.
1.3.0a8
Changes since 1.3.0a7:
- notification_listener: More notification listener API additions
- log_handler: Add notifier log handler
- 1282038: Fix Qpid driver regression
- 1276163: Fix ExpectedException handling
- 1261631: Fix RabbitMQ and Qpid reconnection behaviour
- 1269890: Support different RabbitMQ login methods
- 1277168: Switch from oslo.sphinx to oslosphinx
- Convert to oslo.test library
- Improve configuration help strings
Thanks to Andreas Jaeger, Ben Nemec, Dirk Mueller, Doug Hellmann, Flavio Percoco, Ihar Hrachyshka, Jeremy Hanmer, Joe Harrison, Kurt Griffiths, Lance Bragstad, Mehdi Abaakouk and Xavier Queralt for their contributions to this release.
1.3.0a7
Changes since 1.3.0a6:
- notification_listener: Add notification listener API
- 1272271: Fix regression in RabbitMQ reconnection support
- 1273455: Remove use of deprecated stevedore API
Thanks to Ala Rezmerita, Doug Hellmann and Mehdi Abaakouk for their contributions to this release.
1.3.0a6
Changes since 1.3.0a5:
- 1241566: Enable sample config file generator include oslo.messaging options
Thanks to Andreas Jaeger for his contributions to this release.
1.3.0a5
Changes since 1.3.0a3:
- routing_notifier: Add a routing notifier
Thanks to Dirk Mueller and Sandy Walsh for their contributions to this release.
1.3.0a3
Changes since 1.3.0a2:
- aliases: Add transport aliases API
- 1257293: Fix duplicate topic messages for Qpid topology=2
- 1251757: Fix issue with qpid driver reconnects
- Add Sample priority to notifier API
- Remove eventlet related code in amqp driver
- Significant progress on Python 3 support.
- Sync some changes from RPC code in oslo-incubator.
Thanks to Chang Bo Guo, Eric Guo, Ihar Hrachyshka, Joe Gordon, Kenneth Giusti, Lance Bragstad, Mehdi Abaakouk, Nikhil Manchanda, Sandy Walsh, Stanislav Kudriashev, Victor Stinner and Zhongyue Luo for their contributions to this release!
1.3.0a2
Changes since 1.3.0a1:
- logging_and_notification: Notifications can now be sent using a python logging handler.
- Notifier.warning() was added as an alias of Notifier.warn().
- Notifier.audit() has been added.
- 1178375: Support a new qpid topology.
- TransportURL.hosts is no longer a read-only property.
- MessagingException now behaves more like normal exceptions.
- Fix sending of notifications.
- Many internal cleanups.
Thanks to Chang Bo Guo, Christian Strack, Julien Danjou, Kenneth Giusti and Russell Bryant for their contributions to this release!
1.2.0a1
- Initial release of oslo.messaging.
Indices and tables
genindex
modindex
search