1)脚本bin.cinder-scheduler(读取配置文件,获取Cinder路径,导入必需的模块,调用service.Service.create(binary='cinder-scheduler'))。
2)cinder.service:Service.create(进行了一系列变量的初始化操作,然后对类进行初始化)。
3)脚本bin.cinder-api(调用service.serve(server))。
4)cinder.service:serve(初始化Launcher类,然后调用_launcher.launch_server)。
5)cinder.service:Launcher.launch_server(调用eventlet.spawn,建立一个新的绿色线程用来运行变量func所指定的方法;调用self.run_server)。
6)cinder.service:Launcher.run_server(先调用server.start,再调用server.wait)。
7)启动cinder-scheduler服务。
cinder.service:Service.start(创建RPC连接,启动消费者线程,然后等待队列消息。当轮询查询到消息到达后,创建协程处理相关消息)。
8)等待cinder-scheduler服务结束。
·cinder.service:Service.wait(等待服务结束;调用x.wait())。
·cinder.service:wait(调用_launcher.wait())。
·cinder.service:Launcher.wait(等待Cinder-scheduler协程结束,然后关闭RPC协议框架)。