Skip to content

Commit

Permalink
Merge pull request #5 from airtai/minor-fix
Browse files Browse the repository at this point in the history
added example of sending messages at startup
  • Loading branch information
kumaranvpl committed Sep 28, 2023
2 parents 570edff + 34cbab6 commit 6dfbb6a
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion app/application.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import asyncio
import random

from faststream import FastStream, Logger
from faststream.kafka import KafkaBroker
from pydantic import BaseModel, Field
Expand All @@ -12,13 +15,38 @@ class Greeting(BaseModel):


broker = KafkaBroker("localhost:9092")
app = FastStream(broker)
app = FastStream(
broker, title="My service", version="0.1.0", description="My service description"
)

to_greetings = broker.publisher("greetings")


@broker.subscriber("names") # type: ignore
async def on_names(msg: Name, logger: Logger) -> None:
result = f"hello {msg.name}"
logger.info(result)
greeting = Greeting(greeting=result)
await to_greetings.publish(greeting)


@app.after_startup
async def publish_names() -> None:
async def _publish_names() -> None:
while True:
name = random.choice( # nosec
[
"Ana",
"Mario",
"Pedro",
"João",
"Gustavo",
"Joana",
"Mariana",
"Juliana",
],
)
await broker.publish(Name(name=name), topic="names")
await asyncio.sleep(2)

asyncio.create_task(_publish_names())

0 comments on commit 6dfbb6a

Please sign in to comment.