RabbitMQ app framework
Project description
RabbitBus
Feel RabbitMQ like HTTP
- Custom CorrelationManagers
- Regexp routes
Installation
RabbitBus requires Python 3.6 >, aioamqp.
Install the dependencies and library.
$ pip install rabbitbus
Example:
import asyncio
from rabbitbus.manager import DatabusApp, Configuration
from rabbitbus.acks.requests import AmqpRequest
from rabbitbus.acks.responses import AckResponse
async def my_view(request: AmqpRequest):
# Write your code here
return AckResponse(request)
def serve():
loop = asyncio.get_event_loop()
# Inherit from CorrelationManager for custom correlation storages
app = DatabusApp(conf=Configuration())
app.add_route(r'^CASH_REGISTER_EQUIPMENTS[a-zA-Z_]{4}$', my_view)
app.start(loop)
if __name__ == '__main__':
serve()
If message has reply_to property, you can make response like:
from rabbitbus.acks.requests import AmqpRequest
from rabbitbus.acks.responses import AckResponse
async def my_view(request: AmqpRequest):
# Write your code here
return AckResponse(request, data={"result": 1})
"reply_to" will be converted to the "routing_key" and message will be published to the app exchange. More about RPC you can read in RabbitMQ documentation
Sometimes you may need to pause consuming. Three method are to your needs:
app.pause_consuming()
app.continue_consuming()
app.is_paused() #bool to test if your app is paused
To send message from any view you can also use:
async def my_view(request: AmqpRequest):
# Write your code here
request.app.send_message(data={"test": True}, routing_key="TEST")
return AckResponse(request)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rabbitbus-0.1.2.tar.gz
(7.7 kB
view details)
File details
Details for the file rabbitbus-0.1.2.tar.gz
.
File metadata
- Download URL: rabbitbus-0.1.2.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a5dcb2ea7240c61eeae7276b1620913353918d847d9f43b683eeb35de4cc0da |
|
MD5 | aa89ee69a3525aa697e7342bc91a0c3f |
|
BLAKE2b-256 | b0fcb84fe32dd46df29b7b65d0bf3bc6ca4a72c0f1a0256a7bdd2a5c941ca240 |