Как scraperwiki ограничивает время выполнения?

Как Scraperwiki решает остановить запланированный запуск? Это основано на фактическом времени выполнения или времени процессора? Или, может быть, что-то еще.

Я очищаю сайт, для которого Mechanize требуется 30 секунд для загрузки каждой страницы, но я использую очень мало ЦП для обработки страниц, поэтому мне интересно, является ли медлительность сервера серьезной проблемой.

1 ответ

Время процессора, а не время настенных часов. Он основан на функции Linux setrlimit.

Каждый цикл скребка ограничен примерно 80 секундами времени обработки. После этого в Python и Ruby вы получите исключение "Превышено время процессора ScraperWiki". В PHP это будет заканчиваться "прекращено SIGXCPU".

Во многих случаях это происходит, когда вы впервые просматриваете сайт, обнаруживая отставание существующих данных. Лучший способ справиться с этим - заставить свой скребок выполнять порцию, используя функции save_var и get_var (см. Http://scraperwiki.com/docs/python/python_help_documentation/), чтобы запомнить свое место.

Это также позволяет вам легче восстанавливаться после других ошибок синтаксического анализа.

Другие вопросы по тегам