0

クラシックASP(タッティングを停止)を使用して、高解像度の写真をあるサーバーから別のサーバーに転送するアプリケーションを構築する必要があります。正確には、サムネイルを含めて約360,000枚です。アプリケーションはWindowsスケジュールを介して呼び出され、バックグラウンドプロセスとして実行されます。

パフォーマンスを念頭に置いて、これを達成するための最良の方法は何ですか?このようなモンスタースクリプトを最後に作成したとき、100万行を超えるデータベーステーブルを転送および変換していましたが、アプリケーションは非常に高速に起動しましたが、25,000レコードを超えると、非常に遅くなりました。だから私はこれを避けたい。

明らかにクロスドメイン転送になるので、ASP / FTPコンポーネントを使用することを考えていました。ファイルを取得して送信し、その成功をDBテーブルに記録して、ファイルが何であるかを認識します。これまでに行われました。

サーバーのリソースを乱用しないように、一度に1つのファイルを処理して更新するのが最善ですか、それとも一度に1000以上を処理する必要がありますか?サーバーを詰まらせずに、できるだけ速くしたいと思います。

どんな助け/提案もありがたいことに受け取られるでしょう。

4

3 に答える 3

1

一度に1つのファイルを作成するのが最善だと思います。接続が短時間ダウンしても、送信済みのファイルが失われることはないからです。

ASPクラシックを使用している場合でも、.netを利用して.netのFTPクライアントクラスを使用してファイルをアップロードし、サードパーティコンポーネントの購入/インストールを回避できます。確かに.netはすでにサーバーにインストールされています。

私のプロセスは次のようになります。

  1. FTPを使用して1つのファイルをアップロード(パフォーマンスの向上)
  2. 成功した場合は、リモートDBにアクションを記録するASPページを呼び出します
  3. エラーのアップロードが発生した場合は、1秒待ってから最大3回再試行してください
  4. 次のファイルに進みます

プロセスがサーバーを詰まらせている場合は、各アップロードの間に短い一時停止を置くことができます。

于 2012-01-24T20:04:19.547 に答える
1

私はClassicASPで実行されているようなものを持っています、それは問題なく何千もの画像を処理します。画像を格納するサーバーで、画像ごとに(vbs)スクリプトを実行します

  1. メタデータを含むテキストファイルを作成します
  2. 2番目の(Web)サーバーでサムネイルと中サイズの画像のコピーを作成します

スクリプトは継続的に実行され、ファイルがWebサーバーに存在するかどうかをフォルダーおよびファイルごとにチェックし、存在しない場合はDBを作成しません。すべてのチェックの間にそれは1秒眠ります。そのように、サーバーの負荷はわずか2%です。コマンドラインモードでiPhotoを使用してメタデータと画像を抽出していますが、そのためにライブラリを使用することもできます。したがって、これらの3つのファイルは、最初のサーバーからのマップ構造のコピーでWebサーバーに保存されますが、フルサイズの画像は含まれません。

Webサーバーでは、サムネイルを参照し、メタデータと中サイズの画像を視覚化するだけで済みます。ユーザーがフルサイズの画像を必要とする場合は、最初のサーバー上のファイルをURLとして持つ中サイズをクリックします。

于 2012-01-25T16:16:39.610 に答える
0
  • FTP経由ですべてのファイルをアップロードする
  • すべてのデータを含むCSVファイルを作成します
  • 一度にDBにプルします

360,000を超える個々のトランザクションのネットワークハンドシェイクの量がボトルネックになります。

于 2012-01-24T17:13:28.987 に答える