Launchpad Entry: bexar-message-queue-celery
Created: 2010-10-29
Contributors: JayPipes
Summary
Refactor the way that Nova's services use RPC and message queues in general to use the Celery distributed task queue system.
Release Note
Nova's remote procedure call and message queue internals have been refactored to use the Celery distributed task queue library. The following benefits come with this change:
Ability to configure message queues using AMQP, ZeroMQ, Redis, or any RDBMS supported by Celery (any from SQLAlchemy)
- Ability to store results of messages in a database for later monitoring
- Configurable rate limiting for messages, sets of messages (topics), or globally
- Ability to configure per-task-type delay, retry policy, and to configure a task to run on a schedule
The nova.rpc and nova.service modules have been significantly simplified.
Rationale
We want to make use of the Celery library to take advantage of that libraries' benefits, reduce the amount of custom message-queue code Nova must contain, allow configuration of the message queue system separately from Nova itself, and simplify the code used for remote procedure calls
Current Implementation
TODO
Proposed Implementation
TODO