root.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:rci 作者: seecloud 项目源码 文件源码
def run(self):
        self._load_config()

        for service in self.config.iter_instances("service", "Service"):
            self._start_service(service)

        listen = self.config.raw_data[0]["core"]["listen"]

        self.http = HTTP(self.loop, listen)
        self.http.add_route("*", r"/{dir:.*}", self._http_handler)

        for prov in self.config.iter_providers():
            self.providers[prov.name] = prov
            yield from prov.start()
        yield from self.http.start()
        reload_fut = asyncio.async(self.reload(), loop=self.loop)
        yield from self.stop_event.wait()
        self.log.info("Interrupted.")
        reload_fut.cancel()
        yield from reload_fut
        for obj in self._running_objects:
            obj.cancel()
        yield from asyncio.wait(self._running_objects,
                                return_when=futures.ALL_COMPLETED)
        if self._running_cleanups:
            yield from asyncio.wait(self._running_cleanups,
                                    return_when=futures.ALL_COMPLETED)
        for provider in self.providers.values():
            yield from prov.stop()
        self.http.stop()
        yield from self.http.wait_closed()
        self.log.info("Exit.")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号