Django には ASP.NET MVC のAsynchronous Controllerに似たものがありますか?
セロリ ワーカーが処理するいくつかのリクエストがありますが、それほど時間はかかりません (数秒)。ワーカーが完了した後にクライアントに応答を取得してもらいたい。タスクが完了するまでビュー関数を待機させることはできますが、Web サーバーに負担がかかりすぎるのではないかと心配です。
説明:
これが私が今日持つことができる流れです
def my_view(request):
async = my_task.delay(params)
result = async.get()
return my_response(result)
async.get()
クライアントが HTTP 応答が返されるのを待つことができないほど長くはないので、数秒かかることがあります。
このコードは、サーバーに不要な負担をかける可能性があります。ASP.NET MVC がAsynchronousController
提供するのは、この関数を次のように 2 つに分割する機能です。
def my_view(request):
async = my_task.delay(params)
return DelayedResponse(async, lambda result=>my_response(result))
これにより、非同期操作が完了するまで、Web サーバーが解放されて他の要求を処理できるようになります。完了すると、結果に対してラムダ式が実行され、応答が返されます。