我们有成千上万的任务需要以各种任意间隔运行,有些是每小时,有些是每天,等等.这些任务是资源密集型的,需要分布在许多机器上.
现在,任务存储在具有"此时执行"时间戳的数据库中.要查找需要执行的任务,我们在数据库中查询将要执行的作业,然后在任务完成时更新时间戳.当然,这会导致数据库的大量写入负载.
据我所知,我们正在寻找一些东西,以设定的间隔将任务释放到队列中.(然后工人可以从该队列中请求任务.)
大规模安排重复任务的最佳方法是什么?
尽管使用其他语言编写的组件(RabbitMQ?)没有问题,但我们在很大程度上使用Python是值得的.
更新:现在我们有大约350,000个任务,每半小时左右运行一次,有一些变化.350,000个任务*每天48次,每天执行16,800,000个任务.
更新2:没有依赖关系.任务不必按顺序执行,也不依赖于以前的结果.
python ×1