私の問題は次のとおりです。
3 つのアイテム パイプラインがあります
- アーカイブをダウンロードする 1 つの FilesPipeline
- アーカイブをアンパックする 1 つの ArchiveUnpackerPipeline
- これらのアーカイブのコンテンツへのシンボリック リンクを生成する 1 つの SymbolicLinkerPipeline
問題は次のとおりです。
Web サイトの構築方法により、異なるアイテムから同じアーカイブへのシンボリック リンクを生成する必要がある場合があります。すべてが順次実行された場合、次のようになります。
item_1
のダウンロードを開始しますarchive_1
item_1
の開梱を開始しますarchive_1
item_1
files_1
fromのシンボリックリンクを開始しますarchive_1
item_2
過去archive_1
にダウンロードされたものを確認し、返すitem_1
item_2
過去に開梱されたものを見てarchive_1
、返すitem_1
item_2
files_2
fromのシンボリックリンクを開始しますarchive_1
ただし、ダウンロードには時間がかかるため、同じファイルが 2 回ダウンロードされるなどのエラーが発生する可能性があります。
この問題に取り組むエレガントな方法はありますか? downloading
私の最初の推測では、各 download_url のステータスを、finished_downloading
、unpacking
、finished_unpacking
および twisted Deferred を使用して追跡するグローバル ディクショナリで動作する可能性があります。