У цьому сценарії я запускаю asyncio
завдання з назвою process_queued_data()
у файлі init.py
.
process_queued_data
– це місце, де я обробляю дані та записую їх у файлові формати Parquet у кошику S3.
1 2 3 4 5 6 7 8 9 |
async def process_queued_data(): try: while True: await asyncio.sleep(5) data_queue_length = await redis_client.llen(redis_data_queue_key) if data_queue_length > 0: batch = await redis_client.lrange(redis_data_queue_key, 0, -1) await redis_client.ltrim(redis_data_queue_key, data_queue_length, -1) # ......виконати обробку та завантаження в S3 |
Моя проблема полягає в тому, що кожного разу, коли запущений process_queued_data
, і я намагаюся відправити файл, він висить, доки завдання не завершиться. Як я можу уникнути цього поведінки і приймати дані у будь-який час, навіть коли process_queued_data
працює?