| 79 | await self._serve(sockets) |
| 80 | |
| 81 | async def _serve(self, sockets: list[socket.socket] | None = None) -> None: |
| 82 | process_id = os.getpid() |
| 83 | |
| 84 | config = self.config |
| 85 | if not config.loaded: |
| 86 | config.load() |
| 87 | |
| 88 | self.lifespan = config.lifespan_class(config) |
| 89 | |
| 90 | message = "Started server process [%d]" |
| 91 | color_message = "Started server process [" + click.style("%d", fg="cyan") + "]" |
| 92 | logger.info(message, process_id, extra={"color_message": color_message}) |
| 93 | |
| 94 | await self.startup(sockets=sockets) |
| 95 | if not self.should_exit: |
| 96 | await self.main_loop() |
| 97 | if self.started: |
| 98 | await self.shutdown(sockets=sockets) |
| 99 | |
| 100 | message = "Finished server process [%d]" |
| 101 | color_message = "Finished server process [" + click.style("%d", fg="cyan") + "]" |
| 102 | logger.info(message, process_id, extra={"color_message": color_message}) |
| 103 | |
| 104 | async def startup(self, sockets: list[socket.socket] | None = None) -> None: |
| 105 | await self.lifespan.startup() |