Documentation ¶
Index ¶
- Constants
- func NewPool(ctx context.Context, cmd func() *exec.Cmd, factory worker.Factory, cfg Config, ...) (pool.Pool, error)
- type After
- type Before
- type Config
- type ErrorEncoder
- type Options
- type StaticPool
- func (sp *StaticPool) AddListener(listener events.EventListener)
- func (sp *StaticPool) Destroy(ctx context.Context)
- func (sp *StaticPool) Exec(p internal.Payload) (internal.Payload, error)
- func (sp *StaticPool) ExecWithContext(ctx context.Context, rqs internal.Payload) (internal.Payload, error)
- func (sp *StaticPool) GetConfig() interface{}
- func (sp *StaticPool) RemoveWorker(wb worker.BaseProcess) error
- func (sp *StaticPool) Workers() (workers []worker.BaseProcess)
- type Supervised
- type SupervisorConfig
Constants ¶
View Source
const MB = 1024 * 1024
View Source
const StopRequest = "{\"stop\":true}"
StopRequest can be sent by worker to indicate that restart is required.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { // Debug flag creates new fresh worker before every request. Debug bool // NumWorkers defines how many sub-processes can be run at once. This value // might be doubled by Swapper while hot-swap. Defaults to number of CPU cores. NumWorkers int64 // MaxJobs defines how many executions is allowed for the worker until // it's destruction. set 1 to create new process for each new task, 0 to let // worker handle as many tasks as it can. MaxJobs int64 // AllocateTimeout defines for how long pool will be waiting for a worker to // be freed to handle the task. Defaults to 60s. AllocateTimeout time.Duration // DestroyTimeout defines for how long pool should be waiting for worker to // properly destroy, if timeout reached worker will be killed. Defaults to 60s. DestroyTimeout time.Duration // Supervision config to limit worker and pool memory usage. Supervisor *SupervisorConfig }
Configures the pool behaviour.
func (*Config) InitDefaults ¶
func (cfg *Config) InitDefaults()
InitDefaults enables default config values.
type ErrorEncoder ¶
ErrorEncoder encode error or make a decision based on the error type
type StaticPool ¶
type StaticPool struct {
// contains filtered or unexported fields
}
StaticPool controls worker creation, destruction and task routing. Pool uses fixed amount of stack.
func (*StaticPool) AddListener ¶
func (sp *StaticPool) AddListener(listener events.EventListener)
AddListener connects event listener to the pool.
func (*StaticPool) Destroy ¶
func (sp *StaticPool) Destroy(ctx context.Context)
Destroy all underlying stack (but let them to complete the task).
func (*StaticPool) ExecWithContext ¶
func (*StaticPool) GetConfig ¶
func (sp *StaticPool) GetConfig() interface{}
Config returns associated pool configuration. Immutable.
func (*StaticPool) RemoveWorker ¶
func (sp *StaticPool) RemoveWorker(wb worker.BaseProcess) error
func (*StaticPool) Workers ¶
func (sp *StaticPool) Workers() (workers []worker.BaseProcess)
Workers returns worker list associated with the pool.
type Supervised ¶
type SupervisorConfig ¶
type SupervisorConfig struct { // WatchTick defines how often to check the state of worker. WatchTick uint64 // TTL defines maximum time worker is allowed to live. TTL uint64 // IdleTTL defines maximum duration worker can spend in idle mode. Disabled when 0. IdleTTL uint64 // ExecTTL defines maximum lifetime per job. ExecTTL uint64 // MaxWorkerMemory limits memory per worker. MaxWorkerMemory uint64 }
func (*SupervisorConfig) InitDefaults ¶
func (cfg *SupervisorConfig) InitDefaults()
InitDefaults enables default config values.
Click to show internal directories.
Click to hide internal directories.