1

私の問題は次のとおりです。

3 つのアイテム パイプラインがあります

  • アーカイブをダウンロードする 1 つの FilesPipeline
  • アーカイブをアンパックする 1 つの ArchiveUnpackerPipeline
  • これらのアーカイブのコンテンツへのシンボリック リンクを生成する 1 つの SymbolicLinkerPipeline

問題は次のとおりです。

Web サイトの構築方法により、異なるアイテムから同じアーカイブへのシンボリック リンクを生成する必要がある場合があります。すべてが順次実行された場合、次のようになります。

  1. item_1のダウンロードを開始しますarchive_1
  2. item_1の開梱を開始しますarchive_1
  3. item_1files_1fromのシンボリックリンクを開始しますarchive_1
  4. item_2過去archive_1にダウンロードされたものを確認し、返すitem_1
  5. item_2過去に開梱されたものを見てarchive_1、返すitem_1
  6. item_2files_2fromのシンボリックリンクを開始しますarchive_1

ただし、ダウンロードには時間がかかるため、同じファイルが 2 回ダウンロードされるなどのエラーが発生する可能性があります。

この問題に取り組むエレガントな方法はありますか? downloading私の最初の推測では、各 download_url のステータスを、finished_downloadingunpackingfinished_unpackingおよび twisted Deferred を使用して追跡するグローバル ディクショナリで動作する可能性があります。

4

0 に答える 0