对于业务规模较大的应用而言,调度的稳定性和核心任务的时效性是至关重要的,需要应用级别的资管管理和任务优先级来保证。本文介绍如何管理应用级别的资源和任务优先级。
背景信息
应用场景
应用级别的资管和任务优先级管理主要适用于业务、数据规模较大的调度场景。
例如,一个数据平台的应用,每天夜里会执行成千上万的报表,如果没有资源管理,应用可能会因为超负荷而发生故障。同时,一些核心报表也可能会有极强的时效性,必须在某个时间前生成,会对任务的优先级有强烈的需求。SchedulerX提供了资源管理和任务优先级的功能。
- 资源管理
资源管理即管理应用的任务实例数量,例如在创建应用时,为该应用打开了流控开关,并将任务实例并发数设置为1。再在该应用下创建3个任务,A、B和C,每个任务运行一次,则任务A运行中,而任务B和C在池子中等待运行,而不会被丢弃。
- 任务优先级管理
任务优先级是应用级别的,即优先级仅在单应用内生效,不影响其它应用的任务。同一个应用下,同时运行的优先级高的任务会被优先执行。
说明 一个应用包含多个实例,不同优先级的任务被调度到不同实例执行,可能导致低优先级任务被优先执行。SchedulerX通过可抢占的优先级队列规避了这种可能性,并保证同时在池子中等待的高优先级任务被优先执行。详情请参见可抢占的优先级队列。
管理应用的任务实例资源
管理应用的任务优先级
可抢占的优先级队列
一个应用包含多个实例,不同优先级的任务被调度到不同实例执行,可能导致低优先级任务被优先执行。SchedulerX通过可抢占的优先级队列规避了这种可能性,并保证同时在池子中等待的高优先级任务被优先执行。