Ваши два паука все еще могут быть независимыми. Их не нужно координировать, и им не нужно общаться друг с другом. Обеим нужен только доступ к центральной базе данных.
Spider1 отвечает только за заполнение таблицы базы данных URL-адресами. И Spider2 просто отвечает за чтение из него (и, возможно, обновление строк, если вы хотите отслеживать). Оба паука могут запускаться / останавливаться независимо. Если Spider1 останавливается, Spider2 может продолжать работать, пока есть URL.
В случае, если в настоящее время больше нет URL-адресов для Spider2, вы можете сохранить его, настроив сигнал spider_idle
, который вызывает исключение DontCloseSpider
( документация ). На этом этапе вы также можете получить новый пакет URL-адресов из базы данных и сканировать их ( пример сканирования по сигналу ).
Кроме того, вы можете просто использовать что-то вроде cron, чтобы планировать выполнение Spider2 каждые несколько минут. Тогда вам не нужно беспокоиться о том, чтобы сохранить его.