
Estou agendando spiders implantados via scrapy com cron. Cada aranha uma linha. Agora, com 100 aranhas, isso se torna bastante difícil de planejar e gerenciar. Qual é a maneira recomendada de gerenciar uma grande quantidade de trabalhos? Analisar o tempo de manutenção potencial necessário para pausar/retomar trabalhos, entre outras coisas, como trabalhos sobrepostos, etc.
Responder1
Não use cron
Se suas necessidades forem complexas, você pode considerar o uso de um produto mais avançado projetado para executar programações complexas (distribuídas por vários servidores) e que suporte gatilhos, dependências de trabalho, tratamento de erros, novas tentativas e monitoramento de novas tentativas, etc. "agendamento de trabalhoe/ou "automação de carga de trabalho".
Responder2
Se você precisar agendar QUANDO a tarefa será executada, e não QUANTO FREQUÊNCIA, você pode continuar usando o cron. Para evitar execuções cruzadas de tarefas, você pode deixar o cron executar apenas um script curto que adiciona a tarefa a algum tipo de fila (redis, RabbitMQ, banco de dados SQL) e deixar outro script consumir essa fila e executar as cargas de trabalho sequencialmente ou com simultaneidade limitada. É claro que isso traz outra categoria de problemas, como lidar com cargas de trabalho travadas que impedem a execução de outras :)