私はストックスタンダードのASP.NET MVC 3 Webアプリケーション(IIS 7でホストされています)で作業しています。このサイトでは、ユーザーが写真などをアップロードすることができます。画像処理アーキテクチャの設計に関するアドバイス
次のようにアップロードプロセスは次のとおりです。
- ユーザーが自分のPCからファイルを選択するためのウィジェット(現在plupload)を利用します。
- AJAX呼び出しが(Request.Files)
- Serverは各リサイズ写真は、現時点ではAmazon S3の
にアップロードされ
上記をより柔軟で堅牢にしたいと考えています。たとえば、画像処理が失敗した場合(GDIを使用している可能性が高いため)、S3がダウンした場合(つまり、発生した場合)、ユーザーはそのことを知ることができません。
私は、WindowsサービスとしてWCFサービスをホストすることを考えています.WCFサービスは、イメージ用のフォルダをポーリングします。
私のメインのウェブサイトは単に画像を「監視」フォルダにFTPで転送するだけで、サービスは画像処理とアップロードを処理します。
ユーザーは写真が完了したことをすぐに通知する必要はありません。言い換えれば、今は「あなたのイメージが処理されており、まもなく利用可能になります」というメッセージが表示されます。サービスが必要であり、まとめると
:
- リサイズ画像
- アップロード画像をS3
- 読み取り/書き込みにデータベースへ
- "再試行" する能力は、画像に
アドバイスはありますか? FileSystemWatcherはいいですか?
良いアドバイス、喝采!いくつかの質問。 1.「相対的な成功」を拡大できますか?何が悪かったのか? 2.もしあなたがその仕事をやり直さなければならなかったら、同じことをもう一度やりますか? 3.あなたはどのようにアプリケーションをホストしましたか? WCF(もしあれば、どのタイプのバインディング、例えばTCP/HTTP)?平凡な古い窓サービス? – RPM1984
1.負荷の高いシナリオでは、パフォーマンスにいくつかの問題がありました。そのほとんどは、マルチスレッド/キューイングを再実装した後に終了しました。 2.はい。いくつかの試行錯誤の後、私たちは、ビジネスロジックを操作して信頼性の高いデータ送信を行うためのかなり安定したシステムを実現しました。 3.実際には、クライアントとサーバー間でWCFリンクを使用して作業する2つのミラー(通常は古い)Windowsサービスです。 FileSystemWatcherの部分は、両側の入力点の1つです(DBはもう一方です)。 –
乾杯! – RPM1984