여러 소스에서 일부 데이터를 추출하는 데 scrapy를 사용하고 있습니다. 실제로는 잘 작동합니다. 이제 거미줄을 작성하여 큰 XML 파일 (약 100MB = 40000 개 항목).거미가 항목 메모리를 해제하지 않습니다.
나는 XMLFeedSpider이라는 치료법을 사용하고 있습니다.
문제는 치료법이 많은 메모리 (1GB 이상)를 사용하고 있으며 내 항목이 사용하는 memomry를 공개하지 않는 이유를 모르겠습니다.
>>> 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의 trackrefs 도구를 사용
나는 다음과 같은 출력을 얻을 수 (텔넷 내 거미에 연결).내 거미에서는 아이템에 대한 참조를 유지하지 않고 항목을 만들고 반환합니다. 메모리 누수가있는 곳을 찾을 수 없습니다 ...
내 아이템이 출시되지 않은 이유가 있습니까?
치료는 메모리에 항목을 축적하지 않으며 버그가 있다고 판단되는 경우 XMLFeedSpider에서 반환 한 생성기가 목록으로 소비되는 경우를 대비해 스파이더 미들웨어를 확인하십시오. 프로젝트 코드를 표시 할 수 있다면 훨씬 간단합니다. – dangra