
Я планирую пауков, развернутых через scrapy с cron. Каждый паук — одна строка. Теперь, когда пауков 100, это становится довольно сложным для планирования и управления. Какой рекомендуемый способ управления большим количеством заданий? Рассматривая потенциальное время обслуживания, необходимое для приостановки/возобновления заданий, среди прочего, как перекрывающиеся задания и т. д.
решение1
Не используйте cron
Если ваши потребности сложны, вы можете рассмотреть возможность использования более продвинутого продукта, который предназначен для выполнения сложных расписаний (распределенных по нескольким серверам) и поддерживает триггеры, зависимости заданий, обработку ошибок, повторные попытки и мониторинг повторных попыток и т. д. На отраслевом жаргоне это будет «корпоративный».планирование работыи/или «автоматизация рабочей нагрузки».
решение2
Если вам нужно запланировать КОГДА будет запущена задача, а не КАК ЧАСТО, вы можете продолжать использовать cron. Чтобы избежать перекрестного выполнения задач, вы можете позволить cron выполнить только короткий скрипт, который добавляет задачу в какую-то очередь (redis, rabbitmq, база данных sql), и позволить другому скрипту использовать эту очередь и выполнять рабочие нагрузки последовательно или с ограниченным параллелизмом. Это, конечно, влечет за собой еще одну категорию проблем, например, как справиться с застрявшими рабочими нагрузками, которые блокируют запуск других :)