ファイル処理を処理するWebサービスを作成しています(これは時間がかかることがあります)。また、Webサーバーがあまりにも多くのファイルを処理しないようにすることで、ファイルを一度にメモリに保存します。長時間実行するWebサービス操作をホストする
これを達成するには、ユーザーがファイルをアップロードできるようにして、すぐにAzure BLOBストレージに入れ、そのファイルのIDをユーザーに与えます。
ファイルがバックグラウンドで処理キューに追加されると(別のアプリケーションによって処理されます)、完了したら出力ファイルを紺色に追加し、完了した操作を反映するようにデータベースを更新します。
私は、ファイルを正常にアップロードした時点で与えたIDを使用して、「自分のファイルはまだ用意されていますか?私に"。
これは許容される方法ですか?
最初は、操作全体が完了するのを待たなければならなかったので、はるかにクリーンでしたが、うまく調整できないように感じました。
私が考えていたのは、ファイル処理コンポーネントをリクエストから切り離してファイルを処理キューに入れると、すぐに処理されるかもしれませんが、数分かかることもあります。 Webサービスの取得 - 最悪の場合、自動スケーリングを実装していないと時間がかかることがあります)、Web要求を潜在的に非常に長い間ぶら下げてしまうことに懸念がありました。
私はこれを工学的に工夫していますか、これは賢明なアプローチですか?
これは分かりやすいアプローチです。 –