Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Lifecycle ¶
type Lifecycle struct {
ShutdownTimeout time.Duration // Default: 30 seconds
Signals []os.Signal // Default: SIGHUP, SIGINT, SIGTERM, SIGQUIT
Logger *slog.Logger // Default: os.Stdout
// Startup runs your main application logic (e.g., server.ListenAndServe).
// This callback should block until the application is ready to shut down.
// Do not call os.Exit or log.Fatal here; return an error instead.
Startup func() error
// Shutdown runs cleanup logic (e.g., server.Shutdown, closing DB connections).
// The context has a timeout based on ShutdownTimeout.
// Do not call os.Exit or log.Fatal here; return an error instead.
Shutdown func(context.Context) error
}
func (Lifecycle) Run ¶
func (l Lifecycle) Run()
Run manages the core lifecycle of an application, including startup, shutdown, and os signal handling. Lifecycle.Startup is expected to block (e.g., http.Server.ListenAndServe). If it returns immediately, Run will wait for a shutdown signal before exiting.
Click to show internal directories.
Click to hide internal directories.