We are excited to announce the first release of ApexMQ, a Django app that simplifies RabbitMQ integration by offering an intuitive and efficient interface for managing RabbitMQ connections, channels, queues, message production, and consumption.
This release brings the following key features:
🚀 New Features
**1. RabbitMQ Connection Management:**
- Easily establish and manage RabbitMQ connections with a flexible configuration system.
**2. Channel and Queue Management:**
- Seamlessly create and manage channels and queues within RabbitMQ through Django settings.
**3. Autoreload Support (DEBUG mode):**
- RabbitMQ connections are automatically reconfigured when code changes are detected, allowing for a smoother development process.
**4. Class-Based Consumers:**
- Automatically register consumer classes defined in your app's consumers.py file.
- Handle different message types and actions using class methods.
- Supports handling multiple actions within a single consumer.
**5. Message Production:**
- Send messages to multiple RabbitMQ queues using an easy-to-use publish() function.
- Automatically handle model create, update, and delete events using specialized functions (on_model_create, on_model_update, on_model_delete).
- Decorator support for custom model update event handling (on_model_update).
**6. Consumer Decorator Support:**
- Register consumer methods with the on_consume decorator for specific action types.
**7. Customizable Producer:**
- Flexibility to produce messages with customizable actions and data for different queues.
- Multi-queue support to broadcast the same message to several queues simultaneously.
💡 Example Use Cases
- Automatically notify multiple services (e.g., products, inventory, and notifications) when a new user is created.
- Easily track model changes (create, update, delete) and broadcast these events to relevant RabbitMQ queues.
We look forward to seeing how you integrate ApexMQ into your Django projects! Stay tuned for more features and improvements in future releases.