feat: multiqueue implementation, support for custom settings for queues/exchange#48
feat: multiqueue implementation, support for custom settings for queues/exchange#48
Conversation
There was a problem hiding this comment.
Pull request overview
This PR implements multi-queue support, allowing custom settings for queues and exchanges, and refactors the broker to use dedicated Queue and Exchange configuration objects instead of constructor parameters. Key changes include:
- Replaced multiple constructor parameters with
ExchangeandQueueconfiguration objects - Added support for multiple task queues with custom routing
- Introduced new exception types for better error handling
- Enhanced testing with dedicated test files for routing and startup scenarios
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| taskiq_aio_pika/broker.py | Refactored to use Queue/Exchange objects, added multi-queue support, enhanced routing logic |
| taskiq_aio_pika/queue.py | New Queue dataclass for queue configuration |
| taskiq_aio_pika/exchange.py | New Exchange dataclass for exchange configuration |
| taskiq_aio_pika/exceptions.py | New exception types for broker errors |
| tests/test_startup.py | New tests for startup/declaration behavior |
| tests/test_routing.py | New tests for multi-queue routing scenarios |
| tests/test_delay.py | Extracted delay tests from test_broker.py |
| tests/test_delay_with_plugin.py | Extracted plugin delay tests from test_broker.py |
| tests/utils.py | Extracted common test utility function |
| tests/conftest.py | Updated fixtures to use new Queue/Exchange objects |
| examples/*.py | Added usage examples for new features |
| README.md | Updated documentation for new API |
| pyproject.toml | Updated dependencies and linting rules |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Hi! Is this PR still being worked on? We ran into the exact problem this solves (multiple isolated queues on a single broker instance) and would love to see it merged. The current workaround of instantiating one |
Fixes:
Probably will be also be useful for #43 because we will be able to pass custom routing key.