import asyncio from app.workers.base_worker import BaseWorker from app.job_registry import routing_key from app.workers.utils import resolve_mx class MXValidationWorker(BaseWorker): async def process(self, payload: dict, **meta) -> dict: domain = payload.get("domain") if not domain: raise ValueError("payload.domain is required") mx = await resolve_mx(domain) await asyncio.sleep(0) return { "mx_records": [{"exchange": m.exchange, "preference": m.preference} for m in mx], "count": len(mx), } async def main(): worker = MXValidationWorker(routing_key("MailCheck", "MXValidation"), worker_id="mx-worker-1") await worker.run() if __name__ == "__main__": import asyncio as _a _a.run(main())