отправка части данных через sse

Всем привет. Недавно начал изучать python и применять его в рабочей практике. Собственно суть вопроса. Есть сервер на Sanic, который по запросу лезет на сетевое оборудование и достает оттуда данные об устройствах, затем отсылает это на клиент. Проблема в том что процесс подключения к оборудованию и ожидание результата команд занимает длительное время и получается что клиент ждет ответа от сервера. Попытался решить проблему через server sent events однако не могу понять как приостановить выполнение функции сбора данных для того чтобы отправить кусок уже полученных данных. Буду признателен если подскажете как это сделать вот кусок кода который я написал для обработки запроса

@app.route('/hostinfo/', methods=['POST','GET'])
async def search(request):
    global streamdata
    if request.method == 'POST':
        conntodevices(request)
    else:
         await sample_streaming_fn(response)



async def sample_streaming_fn(responsed):
    global streamdata
    try:
        print('starting ...')
        i = 0
        while True:
            while i <= len(streamdata):
                if len(streamdata)!=0:
                    await asyncio.sleep(1)
                    s = 'data: ' + streamdata[i] + '\r\n\r\n'
                    await response.write(s.encode())
                    i += 1
    except Exception as e:
        print('gone!')
        print(e)
        print(e.__class__)
        print('')

    return stream(sample_streaming_fn, content_type='text/event-stream')



async def conntodevices(request):

Ответы (0 шт):