调度器配置¶
调度器服务配置在 agent.services.schedulers 下。
结构¶
agent:
services:
schedulers:
airflow_prod:
type: airflow
api_base_url: ${AIRFLOW_URL}
username: ${AIRFLOW_USER}
password: ${AIRFLOW_PASSWORD}
dags_folder: ${AIRFLOW_DAGS_DIR}
default: true
connections:
starrocks_default: StarRocks production
airflow_dev:
type: airflow
api_base_url: ${AIRFLOW_DEV_URL}
username: ${AIRFLOW_DEV_USER}
password: ${AIRFLOW_DEV_PASSWORD}
dags_folder: /tmp/airflow-dags
agentic_nodes:
scheduler:
scheduler_service: airflow_prod
选择规则¶
get_scheduler_config(service_name) 按下列顺序解析活动 scheduler:
- 调用处显式传入的
service_name。 ./.datus/config.yml顶层scheduler:字段(项目级 pin)。- 全局
default: true标记(在services.schedulers中必须唯一)。 - 唯一条目兜底:只配置了一个 scheduler 时直接使用。
若项目级 pin 已失效(指向一个 agent.yml 里不再存在的 service),Datus 会打 warning 并退回到全局 default。
通过 CLI 配置(/services)¶
在 Datus REPL 内执行 /services scheduler 直接进入交互式 TUI 的 Scheduler
tab(裸 /services 落在 Dashboard tab;/services list 退回只读列表):
- 列表最后一行
+ Add new scheduler,按Enter进入新增流程。当前仅airflow(datus-scheduler-airflow)受支持;若 adapter 包尚未安装, Datus 会自动pip install并热加载 registry,无需重启。 e编辑凭据,x删除条目,t触发一次连通性 probe。d切换**全局**default: true:按d把光标项设为 workspace 级 default 并自动清掉其他条目的该字段,避免出现「多 default」。p设置**项目级** default:值写入./.datus/config.yml的scheduler: <name>,只对当前项目生效,优先级高于全局标记。在已 pin 的 行上再按一次p清除。
service 定义会写入 ~/.datus/conf/agent.yml,跨项目共享;只有 active 选择
属于项目级。
首次进入交互式 REPL 时,Datus 会对该 section 跑一遍 bootstrap:若尚无项目级 pin,而能从 YAML 中解析出明确的默认值(单条快捷或唯一标 default: true 的条目),Datus 会自动写入项目级 pin。若配置了多条但都未标 default,启动时会弹出一个轻量选择器。CI / Docker 等无人值守环境可设置 DATUS_DISABLE_SERVICE_BOOTSTRAP=1 关闭。
注意¶
services.schedulers是 scheduler 配置唯一的运行时来源。- 顶层
scheduler:字段在运行时不再被读取。