未验证 提交 6d331d8e 编写于 作者: 走神的阿圆's avatar 走神的阿圆 提交者: GitHub

add timeout for gunicorn (#733)

上级 1f31f91a
......@@ -27,8 +27,6 @@ from paddlehub.commands.base_command import BaseCommand, ENTRY
from paddlehub.serving import app_single as app
from paddlehub.common.dir import CONF_HOME
from paddlehub.common.hub_server import CacheUpdater
from paddlehub.serving.model_service.base_model_service import cv_module_info
from paddlehub.serving.model_service.base_model_service import nlp_module_info
import multiprocessing
import time
import signal
......@@ -232,7 +230,8 @@ class ServingCommand(BaseCommand):
options = {
"bind": "0.0.0.0:%s" % port,
"workers": self.args.workers,
"pid": "./pid.txt"
"pid": "./pid.txt",
"timeout": self.args.config.get('timeout', 30)
}
self.dump_pid_file()
StandaloneApplication(
......@@ -250,18 +249,6 @@ class ServingCommand(BaseCommand):
self.dump_pid_file()
app.run(configs=self.modules_info, port=port)
@staticmethod
def start_multi_app_with_file(configs):
port = configs.get("port", 8866)
if ServingCommand.is_port_occupied("127.0.0.1", port) is True:
print("Port %s is occupied, please change it." % port)
return False
workers = configs.get("workers", number_of_workers())
options = {"bind": "0.0.0.0:%s" % port, "workers": workers}
StandaloneApplication(
app.create_app(init_flag=False, configs=configs), options).run()
print("PaddleHub Serving has been stopped.")
def start_app_with_args(self, workers):
module = self.args.modules
if module is not None:
......
......@@ -28,24 +28,6 @@ def gen_result(status, msg, data):
return {"status": status, "msg": msg, "results": data}
def predict_v2(module_info, input):
serving_method_name = module_info["method_name"]
serving_method = getattr(module_info["module"], serving_method_name)
predict_args = module_info["predict_args"].copy()
predict_args.update({"data": input})
for item in serving_method.__code__.co_varnames:
if item in module_info.keys():
predict_args.update({item: module_info[item]})
try:
output = serving_method(**predict_args)
except Exception as err:
curr = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
print(curr, " - ", err)
return gen_result("-1", "Please check data format!", "")
return gen_result("0", "", output)
def predict_v2_advanced(module_info, input):
serving_method_name = module_info["method_name"]
serving_method = getattr(module_info["module"], serving_method_name)
......
......@@ -21,6 +21,7 @@
}
},
"port": 8866,
"use_multiprocess": false,
"workers": 2
"use_multiprocess": true,
"workers": 2,
"timeout": 30
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册