config

package
v0.0.0-...-a7b91b5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2024 License: Apache-2.0 Imports: 10 Imported by: 150

Documentation

Overview

Package config provides functions to handle the configurations of job service.

Index

Constants

View Source
const (

	// JobServiceProtocolHTTPS points to the 'https' protocol
	JobServiceProtocolHTTPS = "https"
	// JobServiceProtocolHTTP points to the 'http' protocol
	JobServiceProtocolHTTP = "http"

	// JobServicePoolBackendRedis represents redis backend
	JobServicePoolBackendRedis = "redis"
)

Variables

View Source
var DefaultConfig = &Configuration{}

DefaultConfig is the default configuration reference

Functions

func GetAuthSecret

func GetAuthSecret() string

GetAuthSecret get the auth secret from the env

func GetCoreURL

func GetCoreURL() string

GetCoreURL get the core url from the env

func GetUIAuthSecret

func GetUIAuthSecret() string

GetUIAuthSecret get the auth secret of UI side

func MaxDanglingHour

func MaxDanglingHour() int

MaxDanglingHour the max time for an execution can be dangling state

func MaxUpdateDuration

func MaxUpdateDuration() time.Duration

MaxUpdateDuration the max time for an execution can be updated by task

Types

type Configuration

type Configuration struct {
	// Protocol server listening on: https/http
	Protocol string `yaml:"protocol"`

	// Server listening port
	Port uint `yaml:"port"`

	// Additional config when using https
	HTTPSConfig *HTTPSConfig `yaml:"https_config,omitempty"`

	// Configurations of worker worker
	PoolConfig *PoolConfig `yaml:"worker_pool,omitempty"`

	// Job logger configurations
	JobLoggerConfigs []*LoggerConfig `yaml:"job_loggers,omitempty"`

	// Logger configurations
	LoggerConfigs []*LoggerConfig `yaml:"loggers,omitempty"`

	// Metric configurations
	Metric *MetricConfig `yaml:"metric,omitempty"`

	// Reaper configurations
	ReaperConfig *ReaperConfig `yaml:"reaper,omitempty"`

	// MaxLogSizeReturnedMB is the max size of log returned by job log API
	MaxLogSizeReturnedMB int `yaml:"max_retrieve_size_mb,omitempty"`
}

Configuration loads and keeps the related configuration items of job service.

func (*Configuration) Load

func (c *Configuration) Load(yamlFilePath string, detectEnv bool) error

Load the configuration options from the specified yaml file. If the yaml file is specified and existing, load configurations from yaml file first; If detecting env variables is specified, load configurations from env variables; Please pay attentions, the detected env variable will override the same configuration item loading from file.

yamlFilePath string: The path config yaml file readEnv bool : Whether detect the environment variables or not

type CustomizedSettings

type CustomizedSettings map[string]interface{}

CustomizedSettings keeps the customized settings of logger

type HTTPSConfig

type HTTPSConfig struct {
	Cert string `yaml:"cert"`
	Key  string `yaml:"key"`
}

HTTPSConfig keeps additional configurations when using https protocol

type LogSweeperConfig

type LogSweeperConfig struct {
	Duration int                `yaml:"duration"`
	Settings CustomizedSettings `yaml:"settings"`
}

LogSweeperConfig keeps settings of log sweeper

type LoggerConfig

type LoggerConfig struct {
	Name     string             `yaml:"name"`
	Level    string             `yaml:"level"`
	Settings CustomizedSettings `yaml:"settings"`
	Sweeper  *LogSweeperConfig  `yaml:"sweeper"`
}

LoggerConfig keeps logger basic configurations.

type MetricConfig

type MetricConfig struct {
	Enabled bool   `yaml:"enabled"`
	Path    string `yaml:"path"`
	Port    int    `yaml:"port"`
}

MetricConfig used for configure metrics

type PoolConfig

type PoolConfig struct {
	// Worker concurrency
	WorkerCount  uint             `yaml:"workers"`
	Backend      string           `yaml:"backend"`
	RedisPoolCfg *RedisPoolConfig `yaml:"redis_pool,omitempty"`
}

PoolConfig keeps worker worker configurations.

type ReaperConfig

type ReaperConfig struct {
	MaxUpdateHour   int `yaml:"max_update_hours"`
	MaxDanglingHour int `yaml:"max_dangling_hours"`
}

type RedisPoolConfig

type RedisPoolConfig struct {
	RedisURL  string `yaml:"redis_url"`
	Namespace string `yaml:"namespace"`
	// IdleTimeoutSecond closes connections after remaining idle for this duration. If the value
	// is zero, then idle connections are not closed. Applications should set
	// the timeout to a value less than the server's timeout.
	IdleTimeoutSecond int64 `yaml:"idle_timeout_second"`
}

RedisPoolConfig keeps redis worker info.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL