package env import ( "context" "github.com/go-kratos/kratos/v2/config" ) type watcher struct { ctx context.Context cancel context.CancelFunc } var _ config.Watcher = (*watcher)(nil) func NewWatcher() (config.Watcher, error) { ctx, cancel := context.WithCancel(context.Background()) return &watcher{ctx: ctx, cancel: cancel}, nil } // Next will be blocked until the Stop method is called func (w *watcher) Next() ([]*config.KeyValue, error) { <-w.ctx.Done() return nil, w.ctx.Err() } func (w *watcher) Stop() error { w.cancel() return nil }