全局配置
Benjamin 的全局配置用于设置一些对于所有任务都生效的默认配置。
配置文件位于 /etc/benjamin/config.json,内容为 config.GlobalConfig 的 JSON Mapping。
调试模式
指定 debug 为 true 时,Benjamin 会开启全局的调试模式,这既包括了在 API Server 组件中开启调试模式,也包括在所有新任务中开启调试模式。
本地模式
默认情况下,如果未配置数据库或消息队列时直接启动 bjm api 会报错(需要使用 bjm api --local)。如果在配置中指定了 local_mode 为 true,则会在 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_dsn 为 internal://pg(只有在使用 pg 作为数据库时才能使用 pg 作为消息队列,且目前不支持使用与数据库不同的 pg 链接信息)。
Kafka 配置
如需开启输出到 Kafka 的功能,需要配置 Kafka 的连接信息。
可通过提交任务时在 OutputConfig 中配置,也可在全局配置中指定。
相关配置为 kafka_addrs 与 kafka_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配置)