32 lines
753 B
Python
32 lines
753 B
Python
import asyncio
|
|
import os
|
|
from enum import Enum
|
|
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
from faststream import FastStream
|
|
from faststream.nats import NatsBroker
|
|
|
|
from models import ProbeRegister, ProbeUnregister, ProbeHeartBeat
|
|
|
|
NATS_SERVERS = os.getenv('NATS_URL', 'nats://localhost:4222').split(',')
|
|
NATS_TOKEN = os.getenv('NATS_TOKEN', '')
|
|
|
|
broker = NatsBroker(servers=NATS_SERVERS, token=NATS_TOKEN)
|
|
app = FastStream(broker)
|
|
|
|
|
|
|
|
@broker.subscriber(f"discovery.probe")
|
|
async def probe_discovery(data: ProbeRegister | ProbeHeartBeat | ProbeUnregister):
|
|
print(20*'-')
|
|
print(type(data), "->", data)
|
|
return True
|
|
|
|
async def main():
|
|
print("START")
|
|
await app.run()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |