Django有类似于ASP.NET MVC的Asynchronous Controller吗?Django异步请求
我有一些请求将由芹菜工作人员处理,但不会花费很长时间(几秒钟)。我希望客户在工作完成后得到回应。我可以让我的视图函数等待任务完成,但我担心它会给Web服务器带来太多的负担。
澄清:
这里的流量我能有今天
def my_view(request):
async = my_task.delay(params)
result = async.get()
return my_response(result)
async.get()
可能需要几秒钟 - 不要太长,这样客户端不能等待HTTP响应找回。
此代码可能会给服务器带来不必要的压力。什么ASP.NET MVC的AsynchronousController
提供,就是要打破这个函数有两种能力,与此类似:
def my_view(request):
async = my_task.delay(params)
return DelayedResponse(async, lambda result=>my_response(result))
这释放了Web服务器,直到异步操作完成,以处理其他请求。一旦完成,它将在结果上执行lambda表达式,并返回响应。
欲了解更多信息:http://docs.celeryproject.org/en/latest/reference/celery.html?highlight=chain#celery.chain – pynovice 2013-04-23 08:34:20
我不想连锁任务。我会澄清。 – zmbq 2013-04-23 08:36:21