Итак, у нас успешно работает stormcrawler, и основной индекс в настоящее время содержит чуть более 2 миллионов URL-адресов с наших различных веб-сайтов, внесенных в него. Это работает хорошо, однако SC, кажется, не переиндексирует URL-адреса, которые он индексировал ранее, и я пытаюсь выяснить, почему.
Я попытался найти подробную информацию о том, как SC выбирает следующий URL из индекса состояния. Кажется, он не выбирает самое старое nextFetchDate, потому что у нас есть документы в таблице состояния с nextFetchDate от 3 февраля 2019 года.
Просматривая логи, я вижу записи вроде:
2019-03-20 09:21:17.221 c.d.s.e.p.AggregationSpout Thread-29-spout-executor[17 17] [INFO] [spout #5] Populating buffer with nextFetchDate <= 2019-03-20T09:21:17-04:00
и это, похоже, подразумевает, что SC не просматривает ни одного URL в таблице состояния с датой в прошлом. Это верно? Если SC переполнен целым рядом URL-адресов и не может сканировать их все по следующей дате их выборки, некоторые проваливаются сквозь трещины?
Выполняя запрос к документам в индексе состояния с параметром nextFetchDate старше, чем сегодня, я вижу, что 1,4 миллиона из 2 миллионов URL-адресов имеют значение nextFetchDate в прошлом.
Было бы неплохо, если бы сканер мог получить URL с старейшим nextFetchDate и начать сканирование там.
Как мне поставить в очередь те URL, которые были пропущены при следующей дате их получения?