2015-05-12 1 views
2

Я делаю полный обход сайта с API, и я получаю много:ServerErrorException при сканировании сайта

{ «ERRORTYPE»: «ServerErrorException», «ошибка»: «ServerErrorException: Сервер . ошибка (HTTP 500)» }

Кроме того, я получаю ответы тайм-аута и фактическое HTTP не удается: StatusCode: 504, ReasonPhrase: 'GATEWAY_TIMEOUT'

Я просматривают сайт я ползком в то же время, и это кажется быстрым и отзывчивым до сих пор, не медленно спады.

Я удалил многопоточность из своего кода и выполнял синхронно, что останавливает 500 ошибок, но все равно дает много тайм-аутов (и занимает много времени).

У меня работает менее 100 одновременных соединений с моей многопотоковой обработкой. Это слишком много? Я хотел бы нажать его до 1000+. Нужно ли добавлять задержку между запросами?

ответ

3

Ошибка, которую вы видите, указывает, что веб-сайт, на котором вы пытаетесь выполнить обход, отправляет вам 500 файлов.

504 тайм-аут шлюза, который вы получаете, будет потому, что вы, возможно, нанесете import.io со слишком большим количеством запросов.

Я бы замедлял сканирование, возможно, установив задержку между запросами.

Если вы просматриваете большое количество страниц, вы должны будете уважать, что веб-сайт, который вы просматриваете, может не иметь возможности обрабатывать большие количества входящих запросов за небольшое количество времени.

Я бы посоветовал начать медленно и увеличиваться, пока вы не начнете видеть ошибки/таймауты. После того, как вы начнете видеть некоторые ошибки, немного замедлитесь.

Сканирование всего веб-сайта может быть медленным процессом.

+0

Я уменьшил его до одного запроса за раз с секундой между запросами, и у него все еще есть тайм-ауты, поэтому я не думаю, что это так. Я помещаю запросы в цикл, поэтому таймауты снова повторяются. Импорт IO довольно чертовски быстрый, мне нравится сервис. Я получаю 200 страниц соскабливанием примерно через 12 секунд, но это будет намного лучше, если я улучшу свой код очереди, и у меня есть сотни тысяч запросов для оптимизации. Кажется, некоторые запросы просто случайным образом исчерпаны. – Guerrilla

+0

Я бы посоветовал вам поймать те, которые терпят неудачу и переупорядочивают их. Это обычная практика для обхода веб-сайтов. При составлении сотен тысяч запросов, безусловно, хорошо иметь резервный механизм, если один запрос терпит неудачу, иначе вам придется снова запускать все ваши запросы! – Bam4d

+0

Да, я сделал это. Иногда тайм-аут - это всего лишь несколько, но иногда 40% запросов таймаута, поэтому многие потоки привязаны. Я думаю, это зависит от того, насколько занят сервис. – Guerrilla