Асинхронная фоновая задача в Python с библиотекой asyncioPython

Программы на Python
Anonymous
Асинхронная фоновая задача в Python с библиотекой asyncio

Сообщение Anonymous »

Я хочу запустить тяжелую вычислительную задачу в фоновом режиме без блокировки ввода-вывода. Проблема здесь в том, что моя основная функция не зависит от тяжелой задачи и должна возвращать значение до/во время выполнения тяжелой вычислительной задачи. Например:

Код: Выделить всё

def main(args):
transformed_data_list:List[Dict] = translate_request_to_object(args)
status = insert_data_into_db(transformed_data:Dict)
if(status)
# running background task
asyncio.run(process_background_task(transformed_data_list))

# Here, I want to return a success response as soon as data inserted into db
return "data insert into db"

Код: Выделить всё

   async process_background_task(transformed_data_list:List[Dict]):
for data in transformed_data_list:List:
asyncio.create_task(heavy_computation_task(data))
Но приведенный выше код не возвращает ответ до тех пор, пока процесс_background_task не завершится.

Подробнее здесь: https://stackoverflow.com/questions/725 ... io-library

Вернуться в «Python»