[Serve] Implement flask_request and named python request (#5849)

* Implement flask_request and named python request

* Forgot to include missing files

* Address comment

* Add flask to requirements for doc (lint failed)

* Update doc requirement so lint will build

* Install flask in CI

* Fix typo in .travis.yml
This commit is contained in:
Simon Mo
2019-10-06 15:12:30 -07:00
committed by GitHub
parent b99cdf4e39
commit e8570874b6
21 changed files with 345 additions and 168 deletions
+14 -5
View File
@@ -7,8 +7,15 @@ from ray.experimental.serve.utils import get_custom_object_id, logger
class Query:
def __init__(self, request_body, result_object_id=None):
self.request_body = request_body
def __init__(self,
request_args,
request_kwargs,
request_context,
result_object_id=None):
self.request_args = request_args
self.request_kwargs = request_kwargs
self.request_context = request_context
if result_object_id is None:
self.result_object_id = get_custom_object_id()
else:
@@ -34,7 +41,8 @@ class CentralizedQueues:
Behavior:
>>> # psuedo-code
>>> queue = CentralizedQueues()
>>> queue.enqueue_request('service-name', data)
>>> queue.enqueue_request(
"service-name", request_args, request_kwargs, request_context)
# nothing happens, request is queued.
# returns result ObjectID, which will contains the final result
>>> queue.dequeue_request('backend-1')
@@ -68,8 +76,9 @@ class CentralizedQueues:
# backend_name -> worker queue
self.workers = defaultdict(deque)
def enqueue_request(self, service, request_data):
query = Query(request_data)
def enqueue_request(self, service, request_args, request_kwargs,
request_context):
query = Query(request_args, request_kwargs, request_context)
self.queues[service].append(query)
self.flush()
return query.result_object_id.binary()