私は様々なソースからいくつかのデータを抽出するためにscrapyを使用していますが、それは本当にうまく動作しますが 今は大きなXMLファイル(約100MB = 40000アイテム)。Scrapyスパイダーはアイテムメモリを解放しません
私はスクラブXMLFeedSpiderを使用しています。
問題は、多くのメモリ(1GB以上)を使用していますが、なぜ私のアイテムで使用されているmemomryを解放しないのか分かりません。
私はscrapyのtrackrefsツール(telnetのと私のクモに接続する)を使用すると、私は次のような出力が得られます。
>>> prefs()
Libxml2Document 2 oldest: 160s ago
CustomName 1 oldest: 163s ago
XmlResponse 1 oldest: 161s ago
XmlXPathSelector 1 oldest: 0s ago
Request 1 oldest: 163s ago
CustomName 38893 oldest: 150s ago
私は、すべてのアイテムのパイプラインを無効にしています。
私のスパイダーではアイテムの参照を保持していないので、アイテムを作成して返すだけです。 メモリリークがどこにあるのかわかりません...
私のアイテムがリリースされない理由はありますか?
Scrapyはアイテムをメモリに蓄積せず、それがバグとみなされるときは、XMLFeedSpiderによって返されたジェネレータがリストに消費された場合に備えて、あなたのスパイダーミドルウェアをチェックしてください。プロジェクトコードを表示できるのであれば、はるかに簡単です。 – dangra