perf: single yield per line in stream chunks handler (#23266)
This commit is contained in:
@@ -961,18 +961,15 @@ def stream_chunks_handler(stream: aiohttp.StreamReader):
|
||||
skip_mode = False
|
||||
yield line
|
||||
else:
|
||||
yield b'data: {}'
|
||||
yield b'\n'
|
||||
yield b'data: {}\n'
|
||||
else:
|
||||
# Normal mode: check if line exceeds limit
|
||||
if len(line) > max_buffer_size:
|
||||
skip_mode = True
|
||||
yield b'data: {}'
|
||||
yield b'\n'
|
||||
yield b'data: {}\n'
|
||||
log.info(f'Skip mode triggered, line size: {len(line)}')
|
||||
else:
|
||||
yield line
|
||||
yield b'\n'
|
||||
yield line + b'\n'
|
||||
|
||||
# Save the last incomplete fragment
|
||||
buffer = lines[-1]
|
||||
@@ -986,7 +983,6 @@ def stream_chunks_handler(stream: aiohttp.StreamReader):
|
||||
|
||||
# Process remaining buffer data
|
||||
if buffer and not skip_mode:
|
||||
yield buffer
|
||||
yield b'\n'
|
||||
yield buffer + b'\n'
|
||||
|
||||
return yield_safe_stream_chunks()
|
||||
|
||||
Reference in New Issue
Block a user