MCPcopy Create free account
hub / github.com/dbunt1tled/python-fast-api / execute

Method execute

src/cmd/email_worker.py:18–46  ·  view source on GitHub ↗
(self, loop: asyncio.AbstractEventLoop)

Source from the content-addressed store, hash-verified

16
17class EmailWorker(AsyncCLICommandBase):
18 async def execute(self, loop: asyncio.AbstractEventLoop) -> int:
19 try:
20 from src.cmd.worker.email.send_email import SendEmailHandler
21 from src.core.rabbit_mq.worker import RMWorker
22
23 worker = RMWorker(
24 consumer=self.container.rmq_consumer(), queue="p_email", exchange="p_email_exchange", log=self.log
25 )
26
27 await worker.initialize(loop=loop, handlers=[SendEmailHandler(container=self.container)])
28
29 try:
30 self.log.info("🚀 Starting email worker...")
31 await worker.start()
32 except asyncio.CancelledError:
33 self.log.info("🚦 Email worker cancelled, shutting down gracefully...")
34 return 0
35 except Exception as e:
36 self.log.error(f"🛑 Failed to start RabbitMQ worker: {e}")
37 return 1
38 finally:
39 await worker.stop()
40 self.log.info("🛑 Email worker stopped")
41
42 return 0
43
44 except Exception as e:
45 self.log.error(f"Email worker execution failed: {e}")
46 return 1
47
48
49if __name__ == "__main__":

Callers 8

find_by_idMethod · 0.45
update_manyMethod · 0.45
delete_manyMethod · 0.45
find_allMethod · 0.45
find_oneMethod · 0.45
countMethod · 0.45
existsMethod · 0.45
raw_queryMethod · 0.45

Calls 7

initializeMethod · 0.95
startMethod · 0.95
stopMethod · 0.95
RMWorkerClass · 0.90
SendEmailHandlerClass · 0.90
infoMethod · 0.80
errorMethod · 0.45

Tested by

no test coverage detected