52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
# faststream run faststream_app:app
|
|
|
|
import asyncio
|
|
import os
|
|
from models.test_result import TestResult
|
|
|
|
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():
|
|
print("START")
|
|
await broker.connect()
|
|
print("CONNECTED")
|
|
result = TestResult(
|
|
to_server="localhost-1",
|
|
test_parameters_id=5)
|
|
|
|
|
|
print("ted to bude")
|
|
await broker.publish(
|
|
#message=JobCreated(job_id="123", name="build-image", subject="jobs.created").model_dump(),
|
|
#message=["text2", 'tyext3', ],
|
|
#message=str("text"),
|
|
message=result.model_dump(),
|
|
#subject="jobs",
|
|
subject="test_topic.request",
|
|
)
|
|
|
|
await broker.stop()
|
|
|
|
asyncio.run(main())
|
|
|
|
|
|
# @broker.subscriber("jobs.create")
|
|
# async def create_job(msg: JobCreated) -> JobResponse:
|
|
# return JobResponse(job_id="123", status=f"created:{msg.name}") |