最大 32 MB の大量のデータ チャンクがアップロードされる可能性のある MVC アプリが関係する状況があります。各チャンクがアップロードされた後、クライアント ブラウザが次のチャンクをアップロードする前に、チャンクを処理して応答を送信する必要があります。
最終的には、データとその処理結果を Azure ストレージに保存する必要があります。データ処理は CPU を集中的に使用します。この量のデータの転送にはかなりの時間がかかることを考えると、データがマシン間で行う必要がある移動の回数を減らし、Web サーバー スレッドから作業を移動することを検討しています。
現在、これは、単一のワーカー スレッドによって消費されるジョブをキューに入れることによって行われます。
ただし、このプロセスは、実行可能ファイルを重い作業に実行するようにアップグレードする必要があります。
処理の最後に、データは Azure Blob Storage にアップロードされます。そのため、データは、応答が送信される前にネットワーク経由で 2 回転送される必要があります (AFAIK)。理想的ではありません。
Azure でさまざまなキュー オプションがあることは認識していますが、状況を改善するどころか悪化させてしまうのではないかと心配しています。この問題をやり過ぎたくはありませんが、プロセス全体をできるだけ迅速かつ効率的に実行する必要があります。
a) クラウド サービスの Azure Web ロールと Worker ロールの間でどのようなデータ転送速度を期待できますか?
b) データを Azure ストレージに直接転送し、再度転送せずにそこで処理する方法はありますか?
c) worker ロールと web ロールは実際に同じマシンで実行できますか?
d) Web アプリ内から .exe を実行することはできますか? パスを取得するには?