Как 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/), чтобы запомнить свое место.
Это также позволяет вам легче восстанавливаться после других ошибок синтаксического анализа.