Память не должна быть проблемой для сканера.
Как только вы закончили с одной страницей и записали все соответствующие данные в базу данных, вы должны избавиться от всех переменных, которые вы создали для этой работы.
Использование памяти после 100 страниц должно быть таким же, как после 1 страницы. Если это не так, выясните, почему.
Вы можете разделить работу между различными процессами. Обычно анализ страницы занимает не так много времени, как загрузка, поэтому вы можете записать все найденные ссылки в базу данных и иметь несколько других процессов, которые просто загружают документы в временный каталог.
Если вы делаете это, вы должны убедиться, что
- Работники не скачивают ссылки.
- ваши процессы ждут новых ссылок, если их нет.
- временные файлы удаляются после каждого сканирования.
- процесс загрузки останавливается при исчерпании ссылок. Вы можете заархивировать это, установив «флаг уничтожения», это может быть файл со специальным именем или запись в базе данных.