Azure:メモリ集約型タスクが同期してオフロード?
-
21-12-2019 - |
質問
AzureでホストされることになっているASP.NET Webアプリケーションを設計しています。ユーザーがサーバー側にアップロードする画像のサイズを変更する予定です。これを行う図書館がありますが、現在これはメインWebフロントエンドVMで起こります。これを労働者VMにオフロードしたいのですが。私はこれをキューで行うためのパターンを理解していますが、処理された要求が完了したときにリサイズイメージを表示する予定であるため、タスクが完了するまでユーザーに戻りたくありません。そのため、同期的に実行されるタスクをオフロードする方法は?(リモートタスクが完了するまで通話サイトから戻ることはありません。)
ありがとう...
-Ben
解決
ここでのWebJobsサンプルで何をすることに似たことができるようにすることができます。
私たちは非常に似たようなアプリケーションを持っています:画像を処理してそれが行われたときにそれを表示します。そのために、JavaScriptを使用して結果BLOBをプールするだけです。
他のヒント
Webサーバー上のホールディングスレッドは通常良い考えではありません。これはスケーラビリティに悪影響を及ぼす。
定期的に画像を表示する準備ができているかどうかを定期的にチェックするUI jQueryを持つことを検討してください。あなたがしなければならないのは、毎秒画像の存在をチェックすることです。これを行う方法はいくつかあります。1つの実装では、クライアントは画像の名前を前に知っており、その読み取りを試みるだけです(たとえば、BLOB)。別のユーザーには、UIは名前を知りませんが、イメージ作成のステータスを示すAzureテーブルでレコードを確認します。