跳到主要内容

Server

环境变量

通过环境变量配置参数,一般用于 Docker 和 Kubernetes 部署。

参数名称默认值描述
OJ_ADMIN_USER_PWD_SALT...加密盐
OJ_DS_DRIVER_CLASScom.mysql.cj.jdbc.Driver数据库驱动,默认MYSQL
OJ_DS_URLjdbc:mysql:....数据库 URL 地址
OJ_DS_USERNAMEroot数据库账号
OJ_DS_PASSWORD123456数据库密码
OJ_DS_HK_MINI_IDLE1连接池最小空闲数
OJ_DS_HK_MAX_POOL_SIZE10连接池最大数
OJ_DS_HK_IDLE_TIMEOUT60000连接池空闲超时
OJ_DS_HK_POOL_NAMEopenjob连接池名称
OJ_FW_LOCATIONSclasspath:db/migration/mysql表结构迁移文件,默认MYSQL
OJ_FW_TABLEmigration_version表结构迁移历史记录表名
OJ_LOG_STORAGE_SELECTORmysql日志存储类型,mysql/oracle/postgresql/elasticsearch7
OJ_LOG_STORAGE_H2_USERrootH2 日志存储,数据库账号
OJ_LOG_STORAGE_H2_PASSWORD123456H2 日志存储,数据库密码
OJ_LOG_STORAGE_H2_URLjdbc:h2:...H2 日志存储,数据库 URL
OJ_LOG_STORAGE_MYSQL_USERrootMysql 日志存储,数据库账号
OJ_LOG_STORAGE_MYSQL_PASSWORD123456Mysql 日志存储,数据库密码
OJ_LOG_STORAGE_MYSQL_URLjdbc:mysql:...Mysql 日志存储,数据库 URL
OJ_LOG_STORAGE_ORACLE_URLjdbc:oracle...Oracle 数据库地址
OJ_LOG_STORAGE_ORACLE_USERopenjobOracle 用户
OJ_LOG_STORAGE_ORACLE_PASSWORD123456Oracle 密码
OJ_LOG_STORAGE_POSTGRESQL_URLjdbc:postgresql...Postgresql 数据库地址
OJ_LOG_STORAGE_POSTGRESQL_USERpostgresPostgresql 用户
OJ_LOG_STORAGE_POSTGRESQL_PASSWORDpg123456Postgresql 密码
OJ_LOG_STORAGE_ES7_USERNAME-Elasticsearch 账号
OJ_LOG_STORAGE_ES7_PASSWORD-Elasticsearch 密码
OJ_LOG_STORAGE_ES7_CLUSTER_NODES127.0.0.1:9200Elasticsearch 集群地址,多个逗号隔离
OJ_LOG_STORAGE_ES7_SOCKET_TIMEOUT3000Elasticsearch 超时时间,单位毫秒
OJ_SCHEDULER_DELAY_ENABLEfalse延时任务,开启状态,默认 false
OJ_REDIS_HOST127.0.0.1Redis 地址
OJ_REDIS_PASSWORD-Redis 密码,默认空
OJ_REDIS_DB0Redis db
OJ_REDIS_PORT6379Redis 端口号
SPRING_JPA_SHOW_SQLfalseSQL 打印状态,默认关闭
AKKA_REMOTE_HOSTNAMEopenjob-server服务远程连接地址,客户端连接使用支持域名和IP
AKKA_REMOTE_PORT25520远程连接端口
AKKA_BIND_HOSTNAME本机IPServer 节点启动地址
AKKA_BIND_PORT25520Server 节点启动端口
提示
  1. 容器启动参数是通过环境变量方式配置
  2. 数据库驱动暂时只支持 Mysql,后续会支持 PostgreSQL/Oracle
  3. 日志存储支持H2/MYSQL/Elasticsearch
  4. 延时任务是可选项,但是开启延时任务时,必须配置 Redis 否则无法使用。
  5. AKKA_REMOTE_HOSTNAME 建议根据场景配置(一般配置负载域名或IP),否则会导致网络不通。
  6. 还有部分其它参数未通过环境变量方式,如有场景需要修改,可以通过文件挂载方式实现。
  7. OJ_FW_LOCATIONS 必须与使用数据源一直,否则无法自动迁移表结构
    • Mysql classpath:db/migration/mysql
    • Oracle classpath:db/migration/oracle
    • Postgresql classpath:db/migration/postgresql

配置文件

通过 application.properties 方式配置参数,一般用于直接部署或容器挂载配置文件。

server.port=${SERVER_PORT:8080}
### admin config
# user passwd hash salt
openjob.admin.user.passwd-salt=${OJ_ADMIN_USER_PWD_SALT:...}
### spring config
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
spring.datasource.driver-class-name=${OJ_DS_DRIVER_CLASS:com.mysql.cj.jdbc.Driver}
spring.datasource.url=${OJ_DS_URL:jdbc:mysql://127.0.0.1:3306/openjob?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai}
spring.datasource.username=${OJ_DS_USERNAME:root}
spring.datasource.password=${OJ_DS_PASSWORD:123456}
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=${OJ_DS_HK_MINI_IDLE:1}
spring.datasource.hikari.maximum-pool-size=${OJ_DS_HK_MAX_POOL_SIZE:10}
spring.datasource.hikari.idle-timeout=${OJ_DS_HK_IDLE_TIMEOUT:60000}
spring.datasource.hikari.pool-name=${OJ_DS_HK_POOL_NAME:openjob}
# fixed warn for "spring.jpa.open-in-view is enabled by default"
spring.jpa.open-in-view=false
spring.flyway.enabled=true
spring.flyway.clean-disabled=true
spring.flyway.locations=${OJ_FW_LOCATIONS:classpath:db/migration/mysql}
spring.flyway.baseline-on-migrate=true
spring.flyway.table=${OJ_FW_TABLE:migration_version}
spring.flyway.baseline-version=0
spring.flyway.encoding=UTF-8
spring.flyway.validate-on-migrate=false
openjob.log.storage.selector=${OJ_LOG_STORAGE_SELECTOR:mysql}
# h2
openjob.log.storage.h2.properties.user=${OJ_LOG_STORAGE_H2_USER:root}
openjob.log.storage.h2.properties.password=${OJ_LOG_STORAGE_H2_PASSWORD:123456}
openjob.log.storage.h2.properties.url=${OJ_LOG_STORAGE_H2_URL:jdbc:h2:mem:openjob;AUTO_RECONNECT=TRUE;MODE=MySQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;WRITE_DELAY=0;}
# mysql
openjob.log.storage.mysql.properties.user=${OJ_LOG_STORAGE_MYSQL_USER:root}
openjob.log.storage.mysql.properties.password=${OJ_LOG_STORAGE_MYSQL_PASSWORD:123456}
openjob.log.storage.mysql.properties.url=${OJ_LOG_STORAGE_MYSQL_URL:jdbc:mysql://127.0.0.1:3306/openjob?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai}
# oracle
openjob.log.storage.oracle.properties.user=${OJ_LOG_STORAGE_ORACLE_USER:openjob}
openjob.log.storage.oracle.properties.password=${OJ_LOG_STORAGE_ORACLE_PASSWORD:123456}
openjob.log.storage.oracle.properties.url=${OJ_LOG_STORAGE_ORACLE_URL:jdbc:oracle:thin:@127.0.0.1:1521:openjob}
# postgresql
openjob.log.storage.postgresql.properties.user=${OJ_LOG_STORAGE_POSTGRESQL_USER:postgres}
openjob.log.storage.postgresql.properties.password=${OJ_LOG_STORAGE_POSTGRESQL_PASSWORD:pg123456}
openjob.log.storage.postgresql.properties.url=${OJ_LOG_STORAGE_POSTGRESQL_URL:jdbc:postgresql://127.0.0.1:5432/openjob}
# elasticsearch7
openjob.log.storage.elasticsearch7.username=${OJ_LOG_STORAGE_ES7_USERNAME:}
openjob.log.storage.elasticsearch7.password=${OJ_LOG_STORAGE_ES7_PASSWORD:}
openjob.log.storage.elasticsearch7.cluster-nodes=${OJ_LOG_STORAGE_ES7_CLUSTER_NODES:localhost:9200}
openjob.log.storage.elasticsearch7.socket-timeout=${OJ_LOG_STORAGE_ES7_SOCKET_TIMEOUT:3000}
openjob.scheduler.delay.enable=${OJ_SCHEDULER_DELAY_ENABLE:false}
#spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
spring.redis.host=${OJ_REDIS_HOST:127.0.0.1}
spring.redis.password=${OJ_REDIS_PASSWORD:}
spring.redis.database=${OJ_REDIS_DB:0}
spring.redis.port=${OJ_REDIS_PORT:6379}
spring.redis.client-type=lettuce
spring.redis.lettuce.pool.max-active=32
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.max-wait=1000
spring.redis.lettuce.pool.time-between-eviction-runs=60s
spring.jpa.show-sql=${SPRING_JPA_SHOW_SQL:false}
akka.remote.hostname=${AKKA_REMOTE_HOSTNAME:openjob-server}
akka.remote.port=${AKKA_REMOTE_PORT:25520}
akka.bind.hostname=${AKKA_BIND_HOSTNAME:}
akka.bind.port=${AKKA_BIND_PORT:25520}
提示

配置参数含义与环境变量完全一致

配置示例

Mysql 数据源

# datasource
spring.datasource.driver-class-name=${OJ_DS_DRIVER_CLASS:com.mysql.cj.jdbc.Driver}
spring.datasource.url=${OJ_DS_URL:jdbc:mysql://127.0.0.1:3306/openjob?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai}
spring.datasource.username=${OJ_DS_USERNAME:root}
spring.datasource.password=${OJ_DS_PASSWORD:123456}
# migration
spring.flyway.locations=${OJ_FW_LOCATIONS:classpath:db/migration/mysql}

Oracle 数据源

# datasource
spring.datasource.driver-class-name=${OJ_DS_DRIVER_CLASS:oracle.jdbc.OracleDriver}
spring.datasource.url=${OJ_DS_URL:jdbc:oracle:thin:@127.0.0.1:1521:xzxt}
spring.datasource.username=${OJ_DS_USERNAME:openjob}
spring.datasource.password=${OJ_DS_PASSWORD:123456}
# migration
spring.flyway.locations=${OJ_FW_LOCATIONS:classpath:db/migration/oracle}

Postgresql 数据源

# datasource
spring.datasource.driver-class-name=${OJ_DS_DRIVER_CLASS:org.postgresql.Driver}
spring.datasource.url=${OJ_DS_URL:jdbc:postgresql://127.0.0.1:5432/openjob}
spring.datasource.username=${OJ_DS_USERNAME:postgres}
spring.datasource.password=${OJ_DS_PASSWORD:pg123456}
# migration
spring.flyway.locations=${OJ_FW_LOCATIONS:classpath:db/migration/postgresql}