Django有没有类似于ASP.NET MVC的Asynchronous Controller?
我有一些请求将由芹菜工人处理,但不会花费很长时间(几秒钟)。我希望客户端在工作人员完成后获得响应。我可以让我的视图函数等待任务完成,但我担心这会给wait服务器带来太多负担。
澄清:
这是我今天可以拥有的流程
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))这将释放the服务器以处理其他请求,直到异步操作完成。一旦完成,它将对结果执行lambda表达式,返回响应。
发布于 2013-04-23 16:53:04
发布于 2013-04-23 16:32:53
是的,只有当任务完成时,您才能执行某些操作。您可能希望研究一下名为chain()的东西。您可以在链中绑定芹菜任务:
chain = first_function.s(set) | second_Function.s(do)
chain()这两个函数first_function and second_function都是芹菜函数。只有当first_function完成其执行时,才会执行second_function。
https://stackoverflow.com/questions/16164409
复制相似问题