обработка дубликата селена в штормогравере - PullRequest
0 голосов
/ 29 августа 2018

Я использую stormcrawler с протоколом удаленного драйвера селена через предоставленный плагин навигационного фильтра. Если мой навигационный фильтр выполняется очень долго (URL обрабатывается правильно и обновляет статус до «выбранный» в базе данных mysql), каким-то образом сканер выбирает тот же URL из таблицы mysql для повторного получения. Таким образом, обновление статуса происходит после того, как URL снова окажется в очереди. Какой параметр я могу настроить, чтобы избежать этого? Я попытался установить все компоненты для потоков = 1, и это все еще происходит.

1 Ответ

0 голосов
/ 31 августа 2018

Это может быть связано с настройкой тайм-аута в Storm. См. conf в архетипе , где он установлен на 300 секунд. По истечении этого времени с момента отправки кортежа кортеж будет сбой, и его URL будет удален из кеша обработчика URL-адреса. Поэтому, когда носик снова запросит MySQL, URL будет отправлен вниз по топологии. Сбой при наличии кортежа не останавливает обработку URL-адреса, и, как вы заметили, статус в итоге будет обновлен.

Один из вариантов - установить значение тайм-аута достаточно большим, чтобы все, что вы делаете в навигационном фильтре, имело время для завершения или изменения вашей логики, чтобы это занимало меньше времени.

...