12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- ===============
- Routing Tasks
- ===============
- **NOTE** This document refers to functionality only available in brokers
- using AMQP. Other brokers may implement some functionality, see their
- respective documenation for more information, or contact the `mailinglist`_.
- .. _`mailinglist`: http://groups.google.com/group/celery-users
- AMQP Primer
- ===========
- Exchanges, queues and routing keys.
- -----------------------------------
- TODO Mindblowing one-line simple explanation here. TODO
- Exchange type
- -------------
- The exchange type defines how the messages are routed through the exchange.
- The exchanges defined in the standard is ``direct``, ``topic``, ``fanout`` and
- ``headers``. Also non-standard exchange types available as plugins to RabbitMQ, like
- the last value cache plug-in.
- Consumers and Producers
- -----------------------
- TODO
- Related API commands
- -------------------------
- * exchange.declare(exchange_name, type, passive, durable, auto_delete, internal)
- Declares an exchange by name.
- * ``passive`` means the exchange won't be created, but you can use this to
- check if the exchange already exists.
- * Durable exchanges are persistent. I.e. they survive a broker restart.
- * ``auto_delete`` means the queue will be deleted by the broker when there
- are no more queues using it.
- * queue.declare(queue_name, passive, durable, exclusive, auto_delete)
- Declares a queue by name.
- * exclusive queues can only be consumed from by the current connection.
- implies ``auto_delete``.
- * queue.bind(queue_name, exchange_name, routing_key)
- Binds a queue to an exchange with a routing key.
- Unbound queues will not receive messages, so this is necessary.
- * queue.delete(name, if_unused, if_empty)
- Deletes a queue and its binding.
- * exchange.delete(name, if_unused)
- Deletes an exchange.
- **NOTE**: Declaring does not necessarily mean "create". When you declare you
- *assert* that the entity exists and it is operable. There is no rule as to
- whom should initially create the exchange/queue/binding, whether consumer
- or producer. Usually the first one to need it will create it.
- Hands-on with the API
- ---------------------
- Celery comes with a tool called ``camqadm`` (short for celery AMQP admin).
- It's used for simple admnistration tasks like deleting queues/exchanges,
- purging queues and creating queue entities. In short it's for simple command
- line access to the AMQP API.
|