异步运行 model.save() 方法?

问题描述 投票:0回答:3

我想知道是否可以为我异步覆盖的模型运行保存方法?如果是的话你会如何实施?

python django asynchronous
3个回答
1
投票

对于 Web 开发,您必须快速返回响应,使用线程或多处理不会有帮助(用户将超时,您的任务将失败

解决方案是编写一个后台任务运行程序(使用类似 celery 的东西)

当用户发送请求时,您向 celery 发送任务调用并调用后台任务,该任务将在另一个进程中运行(创建这些行),您可以向用户返回响应,表示您的请求正在处理。


0
投票

为什么不使用多处理

from multiprocessing import Pool

pool = Pool(processes=1)
result = pool.apply_async(model.save)

生成一个新进程来保存模型。您也可以使用

apply_async
中的其他参数传递任何参数,例如路径。


0
投票

Django ≥ 4.2 中的模型具有

asave
方法

© www.soinside.com 2019 - 2024. All rights reserved.