小编Mat*_*lem的帖子

使用 asyncio 库在 python 中实现异步后台任务

我希望在后台运行繁重的计算任务而不阻塞 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

python async-await python-asyncio

3
推荐指数
1
解决办法
7419
查看次数

标签 统计

async-await ×1

python ×1

python-asyncio ×1