node.js - nodejs 多线程下载图片如何做到多张图片只请求一次?
ringa_lee
ringa_lee 2017-04-17 15:31:14
0
4
411

如题。比如

http://www.xx.com/abc.jpg,很多个这样的地址。
因为是异步进行的。你每次请求之前没法判断这张图片是否已经下载获取存在过了。所以发出了很多个下载同一地址的请求。

ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
小葫芦

2 つの異なる状況があります: リクエスト前にすべての URL がわかっている場合と、リクエスト前にすべての URL がわかっていない場合
最初の状況: まずリクエストされた画像 URL 配列から重複を削除してから、リクエストを開始します
2 番目の 2 つのケース: 要求された URL をオブジェクトに入れ、それが要求されたかどうかを確認します。要求されている場合、要求は開始されません。

さらに、NodeJS 自体のメカニズムはマルチスレッドではなく、単一プロセスのイベント ループであるため、単純なフラグ ビットを使用してセンチネル メカニズムを実装できます

いいねを押す +0
巴扎黑

すでにリクエストしているため、再度リクエストしないでください。ただし、ダウンロードが失敗した場合は、再度リクエストしてください。

いいねを押す +0
小葫芦

ダウンロード後に保存されるファイル名は同じですか?同一の場合は、ファイルが存在するかどうかを確認してからダウンロードすることで、重複したダウンロードを回避できます。

いいねを押す +0
阿神

md5 と URL

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート