検索

ホームページ  >  に質問  >  本文

node.js - nodejs 多线程下载图片如何做到多张图片只请求一次?

如题。比如

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

ringa_leeringa_lee2785日前413

全員に返信(4)返信します

  • 高洛峰

    高洛峰2017-04-17 15:33:14

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

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:33:14

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 15:33:14

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

    返事
    0
  • 阿神

    阿神2017-04-17 15:33:14

    md5 と URL

    返事
    0
  • キャンセル返事