shutdown

package
v1.0.779 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 6 Imported by: 4

Documentation

Index

Constants

View Source
const (
	PriorityIngress  = 100
	PriorityJobs     = 500
	PriorityCritical = 1000
)

Some helper priority levels

Variables

View Source
var Shutdown = sync.OnceFunc(func() {
	logger.Infof("begin shutdown")

	for len(shutdownTaskRegistry) > 0 {
		_task := heap.Pop(&shutdownTaskRegistry)
		if _task == nil {
			break
		}

		task := _task.(ShutdownTask)
		logger.Infof("shutting down: %s", task.Label)

		s := time.Now()
		task.Hook()
		logger.Infof("shutdown %s completed in %v", task.Label, time.Since(s))
	}
})

Functions

func AddHook

func AddHook(fn shutdownHook)

Add a hook with the least priority. Least priority hooks are run first.

Prefer AddHookWithPriority()

func AddHookWithPriority added in v1.0.730

func AddHookWithPriority(label string, priority int, fn shutdownHook)

AddHookWithPriority adds a hook with a priority level.

Execution order goes from lowest to highest priority numbers.

func ShutdownAndExit

func ShutdownAndExit(code int, msg string)

func WaitForSignal

func WaitForSignal()

Types

type ShutdownTask added in v1.0.730

type ShutdownTask struct {
	Hook     shutdownHook
	Label    string
	Priority int
}

type ShutdownTasks added in v1.0.730

type ShutdownTasks []ShutdownTask

ShutdownTasks implements heap.Interface

func (ShutdownTasks) Len added in v1.0.730

func (st ShutdownTasks) Len() int

func (ShutdownTasks) Less added in v1.0.730

func (st ShutdownTasks) Less(i, j int) bool

func (*ShutdownTasks) Pop added in v1.0.730

func (st *ShutdownTasks) Pop() interface{}

func (*ShutdownTasks) Push added in v1.0.730

func (st *ShutdownTasks) Push(x interface{})

func (ShutdownTasks) Swap added in v1.0.730

func (st ShutdownTasks) Swap(i, j int)

Jump to

Keyboard shortcuts

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