Надеюсь, вы можете мне помочь. Я пытаюсь просканировать сайт с 4500 ссылками, содержащими информацию. Таким образом, структура такова:Сканирование большого сайта, обработка тайм-аутов
Tier 1 (просто разные категории)
Tier 2 (содержащий различные темы)
Tier 3 (содержит информацию о топиках)
Так мой сценарий открывает каждую категорию в цикле - затем открывает тему по теме и извлекает всю информацию из Уровня 3. Но поскольку есть такие темы 4500, у меня есть проблемы, из-за которых у меня иногда возникает ошибка таймаута, и после этого я должен попытаться начать (Иногда после 200 тем и в другое время это было после 2200 тем). Мой вопрос в том, как я могу сделать это правильно, поэтому, если он сработает, я могу перейти к следующему разделу, где он разбился раньше, а не с самого начала. Я новичок в Ruby и Crawling и буду благодарен за каждый совет.
Спасибо!
«Временная БД» может быть фактической реляционной базой данных, или вы можете просто использовать «Хэш»/«Массив» Ruby. – saki7
Являются ли временные БД хранимыми где-то или они заполняются каждый раз снова и снова. Так, например, если бы я сделал первые 2 шага, и у них есть, а затем шаг 3, то не получится. Если я перезапущу, должны быть шаги 1 и 2, сделанные еще один раз, или только после перезапуска шага 3. Если это так, я должен сохранить, где это не удалось? – user2448801
Это полностью зависит от вашего выбора и дизайна мысли. Если вы хотите отказаться от ошибок после перезапуска приложения, вы должны сохранить его на постоянном хранилище; иначе вы можете сохранить его в памяти. По-моему, я бы решил сохранить его в простом файле JSON. ActiveSupport предоставляет метод 'to_json' для хэшей и массивов. Дальнейший вопрос, связанный с дизайном приложения, будет слишком общим. Вы должны задать более конкретный вопрос в новом потоке. – saki7