跳到主要内容

全局配置

Benjamin 的全局配置用于设置一些对于所有任务都生效的默认配置。

配置文件位于 /etc/benjamin/config.json,内容为 config.GlobalConfigJSON Mapping

调试模式

指定 debugtrue 时,Benjamin 会开启全局的调试模式,这既包括了在 API Server 组件中开启调试模式,也包括在所有新任务中开启调试模式。

本地模式

默认情况下,如果未配置数据库或消息队列时直接启动 bjm api 会报错(需要使用 bjm api --local)。如果在配置中指定了 local_modetrue,则会在 API Server 启动时自动使用本地模式(无需明确使用 --local)。

数据库

非本地模式下,需要指定数据库配置信息来连接数据库。目前仅支持 pg(且需保证安装了 uuid 扩展)。

配置数据库连接信息的参数为 db_dsn,例如 postgres://postgres:@localhost:5432/benjamin?sslmode=disable

消息队列

非本地模式下,需要指定消息队列信息来连接消息队列。目前支持 redis 和 pg。

使用 Redis 队列时,指定以 redis:// 开头的 queue_dsn,例如 redis://localhost:6379/0。同时,因 redis 可能被多项目使用,可配置 queue_prefix 参数来指定队列前缀(默认为 benjamin)。

目前试验性支持使用 pg 作为消息队列,如需使用请指定 queue_dsninternal://pg(只有在使用 pg 作为数据库时才能使用 pg 作为消息队列,且目前不支持使用与数据库不同的 pg 链接信息)。

Kafka 配置

如需开启输出到 Kafka 的功能,需要配置 Kafka 的连接信息。

可通过提交任务时在 OutputConfig 中配置,也可在全局配置中指定。

相关配置为 kafka_addrskafka_tls,请阅读 config.GlobalConfig 中的相关说明。

覆盖任务默认配置

可通过 default_task_config 来为所有新任务添加默认配置,其值与 TaskConfig 一致

通过环境变量进行配置

为了符合 Docker 的习惯,目前部分配置项支持通过环境变量进行配置

  • BJM_SCHEDULER 用于指定使用的调度器类型(目前支持 default, coroutine, subprocess, docker
  • BJM_DOCKER_API_HOST 用于配置 Docker API 镜像的地址(docker_api_host 配置)
  • BJM_DB_DSN 用于配置数据库连接信息(db_dsn 配置)
  • BJM_QUEUE_DSN 用于配置消息队列连接信息(queue_dsn 配置)