サーバーがサムネイルを生成するタイミングは、通常、次の 2 種類に分けられます。
1. ファイルのアップロード時に生成します。
#メリット:アップロード時に必要なサムネイルが生成済みで、読み込み時に再判定する必要がないため、CPU負荷が軽減されます。
欠点: サムネイルのサイズが変更されるか、新しいサイズが追加されると、すべてのサムネイルを再生成する必要があります。
#2.
# にアクセスするときに生成します。 利点: 1. がある場合にのみ生成する必要があります。ユーザーアクセス、アクセスなし 生成する必要がなく、スペースを節約します。
2. サムネイルのサイズを変更する場合、すべてのサムネイルを再生成することなく、設定を変更するだけで済みます。
欠点: サムネイルが存在せず、サムネイルを生成する必要がある場合、同時アクセスが多くなるとサーバー リソースが大量に消費されます。
アクセス時に同時実行性が高い問題が発生しますが、他の利点は最初の方法よりも優れているため、同時実行性が高い問題のみを解決する必要があります。
URLに基づいてサムネイルを自動生成する原理と実装については、以前書いた「phpがURLに基づいてサムネイルを自動生成する」を参照してください。
高同時処理原理:
1. 画像が正常であると判断された場合。 tmp/ ディレクトリに一時マーク ファイルを作成し、そのファイルに md5 (生成する必要があるファイル名) という名前を付け、処理が完了したら一時ファイルを削除します。
2. 生成されるファイルの tmp/ ディレクトリに一時マーク ファイルがあると判断された場合 (ファイルが処理中であることを意味します)、サムネイル生成メソッドは実行されません。が呼び出されますが、一時マーク ファイルが削除され、成功した出力が生成されるまで待機します。
修正したファイルは以下の通りで、他は以前と同じです。
createthumb.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
以上がPHP で URL に基づいてサムネイルを自動的に生成し、同時実行性の問題を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。