[Feature Request] 关于执行器并发控制、任务队列管理及作业血缘查看的增强建议
在使用XXL-JOB的过程中,我们遇到了一些与任务调度和资源管控相关的痛点,希望能得到优化:
执行器级别的并发控制缺失:目前,任务实例的并发控制主要依赖任务自身的“阻塞处理策略”,且“单机串行”等逻辑是在执行器端实现的。这导致我们无法针对不同性能或业务属性的执行器(例如,A执行器资源充足,B执行器资源敏感)进行差异化的全局并发限制。在资源隔离和容量规划上存在困难。
缺少统一的任务队列管理视图:当一个执行器因并发数限制或任务积压时,我们无法在调度中心直观地看到当前正在运行和等待执行的任务列表。这给监控和问题排查带来了不便。同时,默认的FIFO队列无法满足对紧急任务(如数据修复任务)的快速响应需求,缺少队列优先级和“跳过队列直接执行”的能力。
作业血缘关系不直观:虽然XXL-JOB支持通过“子任务ID”来配置任务依赖,但这种关系在管理界面上缺乏一个全局、可视化的展示方式。当一个任务链较长或依赖关系复杂时,我们很难快速评估任务失败的影响面,或梳理整体的调度流程。
希望官方能考虑增加以下功能,以解决上述问题:
增加执行器级别的并发控制:在“执行器管理”界面,为每个执行器增加一个可配置的“最大任务并发数”参数。当该执行器下运行的实例总数达到此阈值后,新的调度请求不再立即下发,而是进入等待状态。这样可以根据机器配置和业务场景进行精细化的资源隔离。
增加任务队列管理页面:
在调度中心新增一个类似“作业管理”或“调度日志”的页面,专门用于展示“任务队列”。该页面应能清晰列出所有执行器的当前运行中和等待中的任务实例。
支持队列优先级设置:在创建或编辑任务时,增加一个“任务优先级”字段(如高、中、低)。当执行器并发数达到上限时,高优先级任务可以排在队列前端,优先获得执行机会。
支持忽略队列直接执行:在“任务管理”或新建的“任务队列”页面上,为任务增加一个“强制立即执行”的按钮。点击后,该任务可以绕过队列等待,直接下发执行,以应对紧急情况。
增加作业血缘查看功能:
在“任务管理”界面,为每个任务增加一个“查看血缘”的按钮或入口。,或者单独有一个血缘查询的页面
点击后,可以以图形化或列表化的方式,展示当前任务与其所有父任务、子任务的依赖关系图。这对于理解复杂业务逻辑和进行影响分析将非常有帮助。
Source: xuxueli/xxl-job