def request_for_batch(host, port, connect_timeout, request_timeout,
schema_cache, topic, batch):
"""Returns a Tornado HTTPRequest to the REST proxy
representing the given message batch. This does not
send the request, it just creates the object."""
request = HTTPRequest('{0}:{1}/topics/{2}'.format(host, port, topic),
connect_timeout=connect_timeout,
request_timeout=request_timeout,
method='POST',
headers={'Accept': 'application/vnd.kafka.v1+json',
'Content-Type': 'application/vnd.kafka.avro.v1+json'},
body=_encode_payload(schema_cache, topic, batch))
# We also stick the message batch on the HTTPRequest object itself
# so it is available to us when we handle the response. This is necessary
# because individual messages can fail even if the overall request is
# successful.
request._topic = topic
request._batch = batch
# We also stick a unique ID on our request so we can keep track of
# in-flight requests and the events contained in them
request._id = uuid4()
return request
评论列表
文章目录