注册器未启动时,整个启动链因为异常被终止
使用await asyncio.sleep(3)可以让后续代码等待一段时间,但不是最优解
This commit is contained in:
parent
3391155077
commit
d7c884e34a
12
startup.py
12
startup.py
|
|
@ -1,6 +1,7 @@
|
||||||
from multiprocessing import Process, Queue
|
from multiprocessing import Process, Queue
|
||||||
import multiprocessing as mp
|
import multiprocessing as mp
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
@ -8,6 +9,7 @@ from pprint import pprint
|
||||||
# 设置numexpr最大线程数,默认为CPU核心数
|
# 设置numexpr最大线程数,默认为CPU核心数
|
||||||
try:
|
try:
|
||||||
import numexpr
|
import numexpr
|
||||||
|
|
||||||
n_cores = numexpr.utils.detect_number_of_cores()
|
n_cores = numexpr.utils.detect_number_of_cores()
|
||||||
os.environ["NUMEXPR_MAX_THREADS"] = str(n_cores)
|
os.environ["NUMEXPR_MAX_THREADS"] = str(n_cores)
|
||||||
except:
|
except:
|
||||||
|
|
@ -497,15 +499,15 @@ def dump_server_info(after_start=False, args=None):
|
||||||
print("\n")
|
print("\n")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
async def start_main_server():
|
||||||
import time
|
import time
|
||||||
|
|
||||||
mp.set_start_method("spawn")
|
mp.set_start_method("spawn")
|
||||||
# TODO 链式启动的队列,确实可以用于控制启动顺序,
|
# TODO 链式启动的队列,确实可以用于控制启动顺序,
|
||||||
# 但目前引入proxy_worker后,启动的独立于框架的work processes无法确认当前的位置,
|
# 但目前引入proxy_worker后,启动的独立于框架的work processes无法确认当前的位置,
|
||||||
# 导致注册器未启动时,无法注册。整个启动链因为异常被终止
|
# 导致注册器未启动时,无法注册。整个启动链因为异常被终止
|
||||||
# 需要将 `run_seq`设置为MAX_int,才能保证在最后启动。
|
# 使用await asyncio.sleep(3)可以让后续代码等待一段时间,但不是最优解
|
||||||
# 是否需要引入depends_on的机制?
|
|
||||||
queue = Queue()
|
queue = Queue()
|
||||||
args, parser = parse_args()
|
args, parser = parse_args()
|
||||||
|
|
||||||
|
|
@ -554,6 +556,7 @@ if __name__ == "__main__":
|
||||||
daemon=True,
|
daemon=True,
|
||||||
)
|
)
|
||||||
process.start()
|
process.start()
|
||||||
|
await asyncio.sleep(3)
|
||||||
processes["controller"] = process
|
processes["controller"] = process
|
||||||
|
|
||||||
process = Process(
|
process = Process(
|
||||||
|
|
@ -638,6 +641,9 @@ if __name__ == "__main__":
|
||||||
process.terminate()
|
process.terminate()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# 同步调用协程代码
|
||||||
|
asyncio.get_event_loop().run_until_complete(start_main_server())
|
||||||
# 服务启动后接口调用示例:
|
# 服务启动后接口调用示例:
|
||||||
# import openai
|
# import openai
|
||||||
# openai.api_key = "EMPTY" # Not support yet
|
# openai.api_key = "EMPTY" # Not support yet
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue