WebAPIには、いくつかの作業を開始し、確認とともに呼び出し元にすぐに戻るためのサポートが組み込まれていますか? 実行する必要がある実行時間の長いプロセスを持つデータ処理サーバーを構築しようとしています。クライアントはすぐに結果を期待することはなく、後でクエリを実行できます。
これが事実であるため、コントローラーが戻るのをブロックしないような方法でいくつかの作業を開始する方法を探しています。
WebAPIには、いくつかの作業を開始し、確認とともに呼び出し元にすぐに戻るためのサポートが組み込まれていますか? 実行する必要がある実行時間の長いプロセスを持つデータ処理サーバーを構築しようとしています。クライアントはすぐに結果を期待することはなく、後でクエリを実行できます。
これが事実であるため、コントローラーが戻るのをブロックしないような方法でいくつかの作業を開始する方法を探しています。
WebAPI には、バックグラウンド作業を開始してすぐに戻ることを妨げるものは何もありません。したがって、次のようにアクションを実装できます。
public HttpResponseMessage Post()
{
Task.Factory.StartNew(() => DoWork());
return new HttpResponseMessage(HttpStatusCode.Accepted);
}
これは単純な例ですが、後でクライアントがクエリを実行したときに結果を返すことができるように、何らかの辞書で Task を追跡する必要があるでしょう。