我希望在后台运行繁重的计算任务而不阻塞 IO。这里的问题是我的主函数不依赖于繁重的任务,并且需要在执行繁重的计算任务之前/同时返回值。举个例子:
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"
Run Code Online (Sandbox Code Playgroud)
async process_background_task(transformed_data_list:List[Dict]):
for data in transformed_data_list:List:
asyncio.create_task(heavy_computation_task(data))
Run Code Online (Sandbox Code Playgroud)
但上面的代码在完成之前不会返回响应process_background_task。