skip to navigation
skip to content

Not Logged In

collective.zamqp 0.9.1

AMQP consumer and producer integration for Zope2

Latest Version: 0.13.2

AMQP integration for Zope2 (and Plone)

collective.zamqp acts as a Zope Server by co-opting Zope's asyncore mainloop (using asyncore-supporting AMQP-library pika), and injecting consumed messages as requests to be handled by ZPublisher (exactly like Zope ClockServer).

Therefore AMQP-messages are handled (by default) in a similar environment to regular HTTP-requests: ZCA-hooks, events and everything else behaving normally.

This package is an almost complete rewrite of affinitic.zamqp, but preserves its ideas on how to setup AMQP-messaging by configuring only producers and consumers.

TODO
  • rewrite documentation to reflect the new design
  • update affinitic.zamqp's tests for the new design

While we are still documenting and testing collective.zamqp, you may want to take a look at collective.zamqpdemo for an example of use.

https://secure.travis-ci.org/datakurre/collective.zamqp.png

Changelog

0.9.1 (2012-09-18)

  • Fixed to not set correlation_id-property for message if the given correlation_id is None.

0.9.0 (2012-09-17)

  • Added alias 'Producer.register' for VTM._register.
  • Renamed 'connected'-property to 'is_connect'.

0.8.1 (2012-09-06)

  • Fixed queue length helpers to use BlockingChannel-helper properly.

0.8.0 (2012-09-06)

  • Fixed consumers without marker interface not to start consuming.
  • Enhanced undolog for transactions by 'zamqp-consumer'-view.
  • Fixed consuming view to annotate transaction with the user configured for the current consuming service.
  • Added separate auto_delete-setting for exchanges and queues. Previously auto_delete was set as negation of durability, which remains the default.
  • Added connection configuration to default with implicit default producer registration (= producer with the same name/id as the connection, but no any special routing).
  • Added support for custom 'x-cookie-auth' header. Its value will be set to value of '__ac' cookie for AMQP request to allow PAS-authentication for logged in user (e.g. to support authenticated asyncronous tasks).
  • Added __len__ for consumer and producer for getting the queue length (if the related queue is defined) using blocking channel.
  • Added BlockingChannel wrapper to be used with 'with' statement to create separate blocking connections for quick raw AMQP-operations.
  • Fixed to never declare queue starting with 'amq.', which is reserved prefix in RabbitMQ. Allow empty queue names to support automatic (broker-generated) queue-names.
  • Fixed to never declare RabbitMQ default exchanges (declarig of any 'amq.'-starting exchange will be skipped).
  • Added json-serializer (when either json or simplejson can be imported).

0.7.18 (2012-08-10)

  • Bug fixes. [malthe]
  • Added plone.testing layer for RabbitMQ + Zope. Added a dummy test for the layer. Enabled RabbitMQ-parts in test buildout.
  • Fixed consumers and producers to use the default exchange by default to allow the easiest possible configuration for the use of the default exchange only.

0.7.17 (2012-05-21)

  • Added transaction aware reject to message.
  • Added site_id-substitution support for consumer name to make consuming service and site specific consumers available for lookup.
  • Fixed to not crash if connection if not defined. Just warn.
  • Fixed grok.name-magic to work more similarly in consumer (name is taken as queue) as in producer (name is taken as routing_key).
  • Refactored ping to use simple dynamic properties for routing_key and queue.
  • Refactored producer, consumer and connection init to allow configuration using simple dynamic properties.
  • Refactored producer, consumer and connection init to allow configuration using simple dynamic properties.
  • Dropped 'magical' buildout name from keepalive's ping queues.
  • Removed 'magical' proxying of message body's properties before we rely on it.

0.7.16 (2012-05-04)

  • Forced correlation_id to be str.
  • Changed default serializer from 'text/plain' to 'pickle'.
  • Fixed added dependencies to work on Plone 4.0.x.

0.7.14 (2012-05-02)

  • Fixed to requeue message when transaction of successful handling is aborted (e.g. due to ZODB conflict error).

0.7.12 (2012-04-25)

  • Added support for sauna.reload.

0.7.11 (2012-04-18)

  • Changed ping to be logged on debug-level instead of info-level.

0.7.10 (2012-04-18)

  • Fixed Pika-adapter to process timeouts to support AMQP-heartbeat.

0.7.9 (2012-04-16)

  • Modified keepalive-setting to accept an integer instead of boolean to allow configuration of keepalive-ping-interval in detail.

0.7.8 (2012-04-16)

  • Fixed issue where a typo in message de-serialization hide de-serialized body.

0.7.7 (2012-04-04)

  • Fixed issue with attribute not found in threadlocals.

0.7.5 (2012-02-26)

  • Minor fixes for being more sauna.reload-friendly.

0.7.4 (2012-03-12)

  • Simplified Ping-consumer to ack messages and log ping directly withing asyncore loop without creating a fake HTTP-request.

0.7.3 (2012-03-09)

  • Added a helper function collective.zamqp.utils.getBuildoutName to be used in configuration re-usable packages using buildout-depending AMQP-queues (e.g. for replies).

0.7.2 (2012-03-08)

  • Added keepalive option for AMQP Broker Connection -configuration in zope.conf to auto-register all needed utilities, views and clock-servers for keeping the connection alive with regular ping message.

0.7.1 (2012-03-06)

  • Allowed new named AMQP Broker Connections to be defined in zope.conf (or in 'zope-conf-additional' in instance buildout recipe).

0.7.0 (2012-02-05)

  • Internal development release.
 
File Type Py Version Uploaded on Size
collective.zamqp-0.9.1.zip (md5) Source 2012-09-18 102KB
  • Downloads (All Versions):
  • 99 downloads in the last day
  • 396 downloads in the last week
  • 1699 downloads in the last month