如何通过 cron 有效地计划 100 个作业?

如何通过 cron 有效地计划 100 个作业?

我正在使用 cron 通过 scrapy 调度部署的蜘蛛。每个蜘蛛占一行。现在有 100 个蜘蛛,这变得非常难以规划和管理。管理大量作业的推荐方法是什么?查看暂停/恢复作业所需的潜在维护时间,以及其他事项,例如重叠作业等。

答案1

不要使用 cron

如果您的需求很复杂,您可以考虑使用更高级的产品,该产品旨在运行复杂的计划(分布在多台服务器上),并支持触发器、作业依赖性、错误处理、重试和重试监控等。行业术语是“企业”作业调度和/或“工作量自动化”。

答案2

如果您需要安排任务运行的时间,而不是运行频率,您可以继续使用 cron。为了避免任务的交叉执行,您可以让 cron 只执行一个简短的脚本,将任务添加到某种队列(redis、rabbitmq、sql 数据库),然后让另一个脚本使用该队列并按顺序或以有限的并发性执行工作负载。这当然会带来另一类问题,例如如何处理阻塞其他工作负载的卡住工作负载 :)

相关内容