func (cmd *presenceCmd) run(ctx scope.Context, args []string) error { c, err := getCluster(ctx) if err != nil { return err } b, err := getBackend(ctx, c) if err != nil { return fmt.Errorf("backend error: %s", err) } defer b.Close() defer func() { ctx.Cancel() ctx.WaitGroup().Wait() }() // Start metrics server. ctx.WaitGroup().Add(1) go presence.Serve(ctx, cmd.addr) // Start scanner. ctx.WaitGroup().Add(1) presence.ScanLoop(ctx, c, b, cmd.interval) return nil }
func (cmd *presenceCmd) run(ctx scope.Context, args []string) error { heim, err := getHeim(ctx) if err != nil { return err } heim, b, err := getHeimWithPsqlBackend(ctx) defer func() { ctx.Cancel() ctx.WaitGroup().Wait() heim.Backend.Close() }() // Start metrics server. ctx.WaitGroup().Add(1) go presence.Serve(ctx, cmd.addr) // Start scanner. ctx.WaitGroup().Add(1) presence.ScanLoop(ctx, heim.Cluster, b, cmd.interval) return nil }