Skip to content

Publish a messages from the method using RabbitRouter #1310

Answered by Lancetnik
YanNezamutdinov asked this question in Q&A
Discussion options

You must be logged in to vote

Nope. Router is just a container for methods paramateres storing and pass them into broker lately. In your case you can get broker from Context

from faststream.rabbit import RabbitRouter
from faststrea.rabbit.annotations import RabbitBroker

router_update_data = RabbitRouter()

@router_update_data.subscriber(queue=RabbitQueue("test"), 
                               exchange=RabbitExchange("update_data.direct"))
async def form_data(broker: RabbitBroker):
    for name, data in data_fron_db:
        await broker.publish(queue=RabbitQueue(name), 
                                         exchange=RabbitExchange("management.direct"), 
                                         message=data)

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by YanNezamutdinov
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants