func refresh()

in pkg/display/graph/dashboard/global.go [315:358]


func refresh(con context.Context, ctx *cli.Context, interval time.Duration) {
	ticker := time.NewTicker(interval)
	defer ticker.Stop()

	initStartStr = ctx.String("start")
	initEndStr = ctx.String("end")

	if s := ctx.Generic("step"); s != nil {
		initStep = s.(*model.StepEnumValue).Selected
	}

	_, start, err := interceptor.TryParseTime(initStartStr, initStep)
	if err != nil {
		return
	}
	_, end, err := interceptor.TryParseTime(initEndStr, initStep)
	if err != nil {
		return
	}

	curStartTime = start
	curEndTime = end

	for {
		select {
		case <-ticker.C:
			d, err := updateDuration(interval)
			if err != nil {
				continue
			}

			data, err := dashboard.Global(ctx, d)
			if err != nil {
				continue
			}

			if err := updateAllWidgets(data); err != nil {
				continue
			}
		case <-con.Done():
			return
		}
	}
}