cattle_grid.tools
cattle_grid.tools
rabbitmq
enqueue_to_routing_key_and_connection
async
enqueue_to_routing_key_and_connection(
connection: RobustConnection,
asyncio_queue: Queue,
routing_key: str,
name: str = "cattle-grid",
exchange_name: str = "amq.topic",
)
Subscribes to the routing key and adds all
the received messages to asyncio_queue
as a string
Source code in cattle_grid/tools/rabbitmq.py
server_sent_events
ServerSentEventFromQueueAndTask
The task is supposed to add strings to queue via
await queue.put(some_string)
.
from fastapi import Request
@fastapi.get("/stream")
def sample_stream(request: Request):
queue = asyncio.Queue()
task = asyncio.create_task(method_to_add_elements_to_queue(queue))
return ServerSentEventFromQueueAndTask(request, queue, task)