2009-10-31 3 views
3

많은 파일을 한 번에 여러 개 빠르게 다운로드 할 수 있지만 문제는 몇 분 후에 점차적으로 거의 완전히 멈추는 경향이 있다는 것입니다. 이유는 알 수 없습니다. 내가 볼 수 있고 내 RAM/CPU는 괜찮습니다. 내 생각에는 내가 생각할 수있는 유일한 것은 urllib2가 엄청난 양의 연결을 올바르게 처리하지 못한다는 것입니다. 도움이된다면 프록시를 사용하고 있지만 프록시를 사용하지 않고이 문제가 발생했습니다. 누구든지이 문제에 대한 제안이나 통찰력을 갖고 있습니까? 감사!Urllib2의 Python MultiThreading

답변

3

파이썬없이 같은 수의 동시 다운로드를 계속하면 빠르게 다운로드 할 수 있습니까? 아마도 문제는 코드와 관련이 없지만 연결 속도가 느려지거나 파일을 제공하는 사이트에 문제가있는 것일 수 있습니다.

이것이 문제가되지 않는다면 pyprocessing 라이브러리를 사용하여 멀티 스레드 버전 대신 멀티 프로세스 버전을 구현할 수 있습니다. 파이썬 2.6을 사용하는 경우, 파이핑은 multiprocessing으로 배포판에 포함되어 있습니다. 스레드 코드를 다중 프로세스 코드로 변환하는 것은 매우 쉽습니다. 따라서 문제를 확인하는 것이 스레딩과 관련된 경우에만 시도해 볼 가치가 있습니다.

1

다른 대답이 제시된 것처럼 연결 또는 파일을 제공하는 사이트에서 문제가 발생한 것일 수 있습니다. 로컬에서 테스트 서버에 대해 코드를 실행할 수 있다면이를 제거 할 수 있습니다.

테스트 서버를 사용할 때 문제가 해결되지 않으면 연결 또는 원격 서버에 문제가있는 것입니다.

테스트 서버를 사용할 때 문제가 지속되면 코드에서 가장 좋아하는 것이지만 적어도 발생하는 일에 대해 더 많은 통찰력을 줄 수있는 서버 로그가 있어야합니다.

다른 방법으로는 찾아 볼 수 있습니다. this thread은 urllib2 대신 httplib2를 사용하도록 제안합니다.