提交 f92c7a3b 编写于 作者: Y Yu Yang

Fix out of order

上级 b3754c77
...@@ -38,13 +38,18 @@ def successResp(data): ...@@ -38,13 +38,18 @@ def successResp(data):
sendQ = Queue() sendQ = Queue()
recvQ = Queue() thread_local = threading.local()
@app.route('/', methods=['POST']) @app.route('/', methods=['POST'])
def infer(): def infer():
sendQ.put(request.json) recv_queue = getattr(thread_local, 'recv_queue', None)
success, resp = recvQ.get() if recv_queue is None:
thread_local.recv_queue = Queue()
recv_queue = thread_local.recv_queue
sendQ.put((request.json, recv_queue))
success, resp = recv_queue.get()
if success: if success:
return successResp(resp) return successResp(resp)
else: else:
...@@ -60,7 +65,7 @@ def worker(): ...@@ -60,7 +65,7 @@ def worker():
inferer = paddle.inference.Inference(parameters=params, fileobj=topo_f) inferer = paddle.inference.Inference(parameters=params, fileobj=topo_f)
while True: while True:
j = sendQ.get() j, recv_queue = sendQ.get()
try: try:
feeding = {} feeding = {}
d = [] d = []
...@@ -70,9 +75,9 @@ def worker(): ...@@ -70,9 +75,9 @@ def worker():
r = inferer.infer([d], feeding=feeding) r = inferer.infer([d], feeding=feeding)
except: except:
trace = traceback.format_exc() trace = traceback.format_exc()
recvQ.put((False, trace)) recv_queue.put((False, trace))
continue continue
recvQ.put((True, r.tolist())) recv_queue.put((True, r.tolist()))
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册