first sandbox draft
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# faststream run faststream_app:app
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
|
||||
from faststream.specification.asyncapi.v3_0_0.schema import servers
|
||||
from pydantic import BaseModel, Field
|
||||
from faststream.nats import NatsBroker
|
||||
from urllib3.util import url
|
||||
|
||||
NATS_SERVERS = os.getenv('NATS_URL', 'nats://localhost:4222').split(',')
|
||||
NATS_TOKEN = os.getenv('NATS_TOKEN', '')
|
||||
|
||||
broker = NatsBroker(servers=NATS_SERVERS, token=NATS_TOKEN)
|
||||
|
||||
class JobCreated(BaseModel):
|
||||
job_id: str
|
||||
name: str
|
||||
subject: str = "jobs.created"
|
||||
|
||||
class JobResponse(BaseModel):
|
||||
job_id: str = Field(..., description="Job identifier")
|
||||
status: str = Field(..., description="Job status")
|
||||
|
||||
async def main():
|
||||
await broker.connect()
|
||||
await broker.publish(
|
||||
JobCreated(job_id="123", name="build-image").model_dump(),
|
||||
subject="jobs",
|
||||
)
|
||||
|
||||
await broker.close()
|
||||
|
||||
asyncio.run(main())
|
||||
|
||||
|
||||
# @broker.subscriber("jobs.create")
|
||||
# async def create_job(msg: JobCreated) -> JobResponse:
|
||||
# return JobResponse(job_id="123", status=f"created:{msg.name}")
|
||||
Reference in New Issue
Block a user