import asyncio from app.workers.base_worker import BaseWorker from app.job_registry import routing_key from app.workers.utils import resolve_txt, parse_spf class SPFValidationWorker(BaseWorker): async def process(self, payload: dict, **meta) -> dict: domain = payload.get("domain") if not domain: raise ValueError("payload.domain is required") txts = await resolve_txt(domain) parsed = parse_spf(txts) await asyncio.sleep(0) return parsed async def main(): worker = SPFValidationWorker(routing_key("MailCheck", "SPFValidation"), worker_id="spf-worker-1") await worker.run() if __name__ == "__main__": import asyncio as _a _a.run(main())