gaffer是Rust编写的微批处理调度工具,可优先级并行作业调度程序,具有并发排除、作业合并、重复作业和较低优先级的负载限制等功能。
特点
循环执行:作业将在某个时间间隔重新加入队列
作业队列:使用可克隆的 [JobRunner] 从各个不同的线程发送作业
FutureJobs:(可选)创建 Futures 以从作业中获取结果
作业优先级:为作业提供优先级,所有作业将按该优先级顺序执行
作业合并:合并队列中相同/相似的作业以减少工作量
并行执行:在多个线程上运行作业并锁定应该独占运行的作业,它们留在队列中,不占用其他资源
并发排除:基于键的锁定以避免不应并发运行的作业
优先级节流:为了让空闲线程准备好接收更高优先级的作业,通过将它们限制为较少数量的线程来限制较低优先级的作业
评论