Class: Nonnative::ConfigurationProcess

Inherits:
ConfigurationRunner show all
Defined in:
lib/nonnative/configuration_process.rb

Overview

Process-specific configuration.

A "process" is an OS-level child process started via spawn and stopped via signals. It is managed by Process at runtime.

Instances are usually created through Nonnative::Configuration#process.

Constant Summary

Constants inherited from ConfigurationRunner

Nonnative::ConfigurationRunner::DEFAULT_TIMEOUT

Instance Attribute Summary collapse

Attributes inherited from ConfigurationRunner

#host, #name, #ports, #wait

Instance Method Summary collapse

Methods inherited from ConfigurationRunner

#port

Constructor Details

#initializevoid

Creates a process configuration with bounded lifecycle defaults.

Defaults:

  • timeout: 1.0


45
46
47
48
49
50
# File 'lib/nonnative/configuration_process.rb', line 45

def initialize
  super

  self.timeout = DEFAULT_TIMEOUT
  self.readiness = []
end

Instance Attribute Details

#commandProc

The child inherits the parent Ruby process's working directory.

Returns:

  • (Proc)

    a callable that returns the command to execute as a shell string or argv array (e.g. -> { "./bin/api" } or -> { ["./bin/api", "--port", "8080"] })



19
20
21
# File 'lib/nonnative/configuration_process.rb', line 19

def command
  @command
end

#environmentHash?

Values are stringified and override matching variables in the inherited parent environment.

Returns:

  • (Hash, nil)

    environment variables to pass to the spawned process



34
35
36
# File 'lib/nonnative/configuration_process.rb', line 34

def environment
  @environment
end

#logString

Returns log file path to append process stdout/stderr to.

Returns:

  • (String)

    log file path to append process stdout/stderr to



29
30
31
# File 'lib/nonnative/configuration_process.rb', line 29

def log
  @log
end

#readinessArray<Nonnative::ConfigurationReadiness>

Returns optional readiness checks.

Returns:



37
38
39
# File 'lib/nonnative/configuration_process.rb', line 37

def readiness
  @readiness
end

#signalString?

Returns signal name to use for stopping (defaults to "INT" when not set).

Returns:

  • (String, nil)

    signal name to use for stopping (defaults to "INT" when not set)



22
23
24
# File 'lib/nonnative/configuration_process.rb', line 22

def signal
  @signal
end

#timeoutNumeric

Returns timeout (seconds) independently applied to child exit, port checks, and each optional HTTP/gRPC readiness probe (defaults to 1.0).

Returns:

  • (Numeric)

    timeout (seconds) independently applied to child exit, port checks, and each optional HTTP/gRPC readiness probe (defaults to 1.0)



26
27
28
# File 'lib/nonnative/configuration_process.rb', line 26

def timeout
  @timeout
end