import os import asyncio from app.services.common.service_base_async import ServiceBaseAsync, Job PRODUCE_BURST = int(os.getenv("PRODUCE_BURST", "10")) PRODUCE_ONCE = os.getenv("PRODUCE_ONCE", "true").lower() == "true" EVENT_TYPE = os.getenv("EVENT_TYPE", "db-mongo") PROCESS_SEC = 10 async def produce(svc: ServiceBaseAsync): await asyncio.sleep(PROCESS_SEC) async def handle_from_parser(svc: ServiceBaseAsync, job): job = Job(**job) await svc.ack_current() await asyncio.sleep(PROCESS_SEC) async def handle_from_mail(svc: ServiceBaseAsync, job): job = Job(**job) await svc.enqueue(task_id=job.task_id, payload=job.payload, type_="parser.excel.publish") print("Parser Excel Consumer from mail handle_from_mail :", job.task_id) await svc.ack_current() await asyncio.sleep(PROCESS_SEC) async def consume_default(svc: ServiceBaseAsync, job): job = Job(**job) await svc.ack_current() await asyncio.sleep(PROCESS_SEC) if __name__ == "__main__": svc = ServiceBaseAsync(produce_fn=produce, consume_fn=consume_default, handlers={"parser.mail.publish": handle_from_mail}) asyncio.run(svc.run())