def start(self): """ Start an REST server at the specific port on the instance or parameter. """ track_server('flask') self.app.run(port=self.port)
def start(self): """ Start an REST server at the specific port on the instance or parameter. """ track_server('flask') # Bentoml api service is not thread safe. # Flask dev server enabled threaded by default, disable it. self.app.run(port=self.port, threaded=False)
def start_yatai_service_grpc_server(db_url, repo_base_url, grpc_port, ui_port, with_ui): track_server('yatai-service-grpc-server') yatai_service = get_yatai_service(db_url=db_url, repo_base_url=repo_base_url) server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) add_YataiServicer_to_server(yatai_service, server) debug_mode = config().getboolean('core', 'debug') if debug_mode: try: logger.debug('Enabling gRPC server reflection for debugging') from grpc_reflection.v1alpha import reflection from bentoml.proto import yatai_service_pb2 SERVICE_NAMES = ( yatai_service_pb2.DESCRIPTOR.services_by_name['Yatai']. full_name, reflection.SERVICE_NAME, ) reflection.enable_server_reflection(SERVICE_NAMES, server) except ImportError: logger.debug( 'Failed enabling gRPC server reflection, missing required package: ' '"pip install grpcio-reflection"') server.add_insecure_port(f'[::]:{grpc_port}') server.start() if with_ui: web_ui_log_path = os.path.join( config("logging").get("BASE_LOG_DIR"), config('logging').get("yatai_web_server_log_filename"), ) ensure_node_available_or_raise() yatai_grpc_server_addess = f'localhost:{grpc_port}' async_start_yatai_service_web_ui(yatai_grpc_server_addess, ui_port, web_ui_log_path, debug_mode) # We don't import _echo function from click_utils because of circular dep click.echo( f'* Starting BentoML YataiService gRPC Server\n' f'* Debug mode: { "on" if debug_mode else "off"}\n' f'* Web UI: {f"running on http://127.0.0.1:{ui_port}" if with_ui else "off"}\n' f'* Running on 127.0.0.1:{grpc_port} (Press CTRL+C to quit)\n' f'* Usage: `bentoml config set yatai_service.url=127.0.0.1:{grpc_port}`\n' f'* Help and instructions: ' f'https://docs.bentoml.org/en/latest/concepts/yatai_service.html\n' f'{f"* Web server log can be found here: {web_ui_log_path}" if with_ui else ""}' ) try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: logger.info("Terminating YataiService gRPC server..") server.stop(grace=None)
def async_start(self, port): """ Start an micro batch server at the specific port on the instance or parameter. """ track_server('marshal') marshal_proc = multiprocessing.Process( target=self.fork_start_app, kwargs=dict(port=port), daemon=True, ) marshal_proc.start() logger.info("Running micro batch service on :%d", port)
def async_start(self): """ Start an micro batch server at the specific port on the instance or parameter. """ track_server('marshal') marshal_proc = multiprocessing.Process( target=self.marshal_app.fork_start_app, kwargs=dict(port=self.port), daemon=True, ) # TODO: make sure child process dies when parent process is killed. marshal_proc.start() marshal_logger.info("Running micro batch service on :%d", self.port)
def start_yatai_service_grpc_server(yatai_service, port): track_server('yatai-service-grpc-server') server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) add_YataiServicer_to_server(yatai_service, server) debug_mode = config().getboolean('core', 'debug') if debug_mode: try: logger.debug('Enabling gRPC server reflection for debugging') from grpc_reflection.v1alpha import reflection from bentoml.proto import yatai_service_pb2 SERVICE_NAMES = ( yatai_service_pb2.DESCRIPTOR.services_by_name['Yatai']. full_name, reflection.SERVICE_NAME, ) reflection.enable_server_reflection(SERVICE_NAMES, server) except ImportError: logger.debug( 'Failed enabling gRPC server reflection, missing required package: ' '"pip install grpcio-reflection"') server.add_insecure_port(f'[::]:{port}') server.start() _echo(f'* Starting BentoML YataiService gRPC Server\n' f'* Debug mode: { "on" if debug_mode else "off"}\n' f'* Running on 127.0.0.1:{port} (Press CTRL+C to quit)\n' f'* Usage: `bentoml config set yatai_service.url=127.0.0.1:{port}`\n' f'* Help and instructions: ' f'https://docs.bentoml.org/en/latest/concepts/yatai_service.html') try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: _echo("Terminating YataiService gRPC server..") server.stop(grace=None)
def start(self): track_server('sagemaker') self.app.run(port=BentoSagemakerServer._DEFAULT_PORT)
def run(self): track_server('gunicorn', {"number_of_workers": self.num_of_workers}) super(GunicornBentoServer, self).run()
def run(self): track_server('gunicorn', {"number_of_workers": self.cfg.workers}) self.setup_prometheus_multiproc_dir() super(GunicornBentoServer, self).run()
def start(self): track_server('sagemaker') self.app.run(port=AWS_SAGEMAKER_SERVE_PORT)
def run(self): track_server('gunicorn-microbatch', {"number_of_workers": self.cfg.workers}) super(GunicornMarshalServer, self).run()
def run(self): track_server('gunicorn-microbatch', {"number_of_workers": self.cfg.workers}) setup_prometheus_multiproc_dir(self.prometheus_lock) super(GunicornMarshalServer, self).run()