-
Notifications
You must be signed in to change notification settings - Fork 15
feat: multiqueue implementation, support for custom settings for queues/exchange #48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Fixes:
Probably will be also be useful for #43 because we will be able to pass custom routing key.