我想知道是否可以为我异步覆盖的模型运行保存方法?如果是的话你会如何实施?
对于 Web 开发,您必须快速返回响应,使用线程或多处理不会有帮助(用户将超时,您的任务将失败
解决方案是编写一个后台任务运行程序(使用类似 celery 的东西)
当用户发送请求时,您向 celery 发送任务调用并调用后台任务,该任务将在另一个进程中运行(创建这些行),您可以向用户返回响应,表示您的请求正在处理。
为什么不使用多处理
from multiprocessing import Pool
pool = Pool(processes=1)
result = pool.apply_async(model.save)
生成一个新进程来保存模型。您也可以使用
apply_async
中的其他参数传递任何参数,例如路径。
Django ≥ 4.2 中的模型具有
asave
方法