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

时间:2018-07-10 18:45:11

标签: python django asynchronous

我想知道是否可以为异步覆盖的模型运行保存方法?如果是这样,您将如何实施?

2 个答案:

答案 0 :(得分:1)

对于Web开发,您必须快速返回响应,并且使用线程或多处理将无济于事(用户将达到超时并且您的任务将失败

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

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

答案 1 :(得分:0)

为什么不使用多处理

from multiprocessing import Pool

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

产生一个新的过程来保存您的模型。您还可以使用apply_async中的其他参数传递诸如路径之类的任何参数。