Documentation
¶
Index ¶
- Constants
- type Config
- type Env
- type OnInitConfig
- type Plugin
- func (p *Plugin) Available()
- func (p *Plugin) CmdFactory(env Env) func() *exec.Cmd
- func (p *Plugin) Init(cfg config.Configurer, log logger.Logger) error
- func (p *Plugin) Name() string
- func (p *Plugin) NewWorker(ctx context.Context, env Env) (*worker.Process, error)
- func (p *Plugin) NewWorkerPool(ctx context.Context, opt *pool.Config, env Env) (pool.Pool, error)
- func (p *Plugin) Serve() chan error
- func (p *Plugin) Stop() error
- func (p *Plugin) Write(data []byte) (int, error)
- type RPCConfig
- type Server
Constants ¶
View Source
const ( // PluginName for the server PluginName string = "server" // RPCPluginName is the name of the RPC plugin, should be in sync with rpc/config.go RPCPluginName string = "rpc" // RrRelay env variable key (internal) RrRelay string = "RR_RELAY" // RrRPC env variable key (internal) if the RPC presents RrRPC string = "RR_RPC" PoolEvents string = "pool.*" WorkerEvents string = "worker.*" WatcherEvents string = "worker_watcher.*" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// OnInit configuration
OnInit *OnInitConfig `mapstructure:"on_init"`
// Command to run as application.
Command string `mapstructure:"command"`
// User to run application under.
User string `mapstructure:"user"`
// Group to run application under.
Group string `mapstructure:"group"`
// Env represents application environment.
Env Env `mapstructure:"env"`
// Relay defines connection method and factory to be used to connect to workers:
// "pipes", "tcp://:6001", "unix://rr.sock"
// This config section must not change on re-configuration.
Relay string `mapstructure:"relay"`
// RelayTimeout defines for how long socket factory will be waiting for worker connection. This config section
// must not change on re-configuration. Defaults to 60s.
RelayTimeout time.Duration `mapstructure:"relay_timeout"`
}
Config All config (.rr.yaml) For other section use pointer to distinguish between `empty` and `not present`
func (*Config) InitDefaults ¶
InitDefaults for the server config
type OnInitConfig ¶ added in v2.6.0
type Plugin ¶
Plugin manages worker
func (*Plugin) CmdFactory ¶
CmdFactory provides worker command factory associated with given context.
func (*Plugin) NewWorkerPool ¶
NewWorkerPool issues new worker pool.
type RPCConfig ¶ added in v2.6.0
type RPCConfig struct {
Listen string `mapstructure:"listen"`
}
RPCConfig should be in sync with rpc/config.go Used to set RPC address env
type Server ¶
type Server interface {
// CmdFactory return a new command based on the .rr.yaml server.command section
CmdFactory(env Env) func() *exec.Cmd
// NewWorker return a new worker with provided and attached by the user listeners and environment variables
NewWorker(ctx context.Context, env Env) (*worker.Process, error)
// NewWorkerPool return new pool of workers (PHP) with attached events listeners, env variables and based on the provided configuration
NewWorkerPool(ctx context.Context, opt *pool.Config, env Env) (pool.Pool, error)
}
Server creates workers for the application.
Click to show internal directories.
Click to hide internal directories.