负载平衡cron作业

负载平衡cron作业,cron,load-balancing,crontab,jobs,Cron,Load Balancing,Crontab,Jobs,我正试图在3台服务器上设置一个“平衡”的cron。现在,我有大约30个作业,它们应该在我的服务器上以不同的日期/小时运行。每个cron作业开始时的最小内存为1GB,最大内存为2GB。起初,我只有大约5个作业,所以可用内存没有问题(每个服务器有24GB,其中大约4个是免费的+8GB交换)。现在我正在将工作从quartz迁移到cron,因此我将在cron中有大约25-30个工作。显然,这有时会引起他们的干扰。这可能会导致OutOfMemory错误 我的问题是,有没有办法在我的3台服务器之间实现作业负

我正试图在3台服务器上设置一个“平衡”的cron。现在,我有大约30个作业,它们应该在我的服务器上以不同的日期/小时运行。每个cron作业开始时的最小内存为1GB,最大内存为2GB。起初,我只有大约5个作业,所以可用内存没有问题(每个服务器有24GB,其中大约4个是免费的+8GB交换)。现在我正在将工作从quartz迁移到cron,因此我将在cron中有大约25-30个工作。显然,这有时会引起他们的干扰。这可能会导致OutOfMemory错误


我的问题是,有没有办法在我的3台服务器之间实现作业负载平衡(如果第一台服务器的可用空间小于2GB,在server2上运行,等等)?我试图避免划分作业(将10个作业放在每个服务器的cron中),我希望将它们全部放在一个cron中,并在最不繁忙的机器上运行它们。这个问题有什么已知的解决方案吗?

您是否考虑过使用分布式工作队列,如Gearman?通过这种方式,您可以为每台服务器设置特定数量的工作者,以避免服务器过载。cron作业将只是提交一个工作请求。它将一直排在队列中,直到有工作人员可以运行它。