MCPcopy
hub / github.com/basecamp/once / Run

Method Run

internal/background/runner.go:27–49  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

25}
26
27func (r *Runner) Run(ctx context.Context) error {
28 slog.Info("Starting background runner", "namespace", r.namespace, "check_interval", CheckInterval)
29
30 scraper := userstats.NewScraper(r.namespace)
31 go scraper.Run(ctx)
32
33 ticker := time.NewTicker(CheckInterval)
34 defer ticker.Stop()
35
36 for {
37 select {
38 case <-ctx.Done():
39 slog.Info("Shutting down")
40 return nil
41 case <-ticker.C:
42 if updated, err := r.check(ctx); err != nil {
43 slog.Error("Check failed", "error", err)
44 } else if updated {
45 return nil
46 }
47 }
48 }
49}
50
51// Private
52

Callers 15

runMethod · 0.95
TestRunnerShutdownFunction · 0.95
TestBackupHookBehaviorFunction · 0.45
runWithProgressFunction · 0.45
TestParseEnvVarsFunction · 0.45
TestApplyChangesFunction · 0.45
systemctlMethod · 0.45
launchctlMethod · 0.45
TestParseBackupTimeFunction · 0.45
TestErrorMessageFunction · 0.45
TestRegistryAuthForFunction · 0.45

Calls 5

RunMethod · 0.95
checkMethod · 0.95
NewScraperFunction · 0.92
StopMethod · 0.45
ErrorMethod · 0.45

Tested by 15

TestRunnerShutdownFunction · 0.76
TestBackupHookBehaviorFunction · 0.36
TestParseEnvVarsFunction · 0.36
TestApplyChangesFunction · 0.36
TestParseBackupTimeFunction · 0.36
TestErrorMessageFunction · 0.36
TestRegistryAuthForFunction · 0.36
TestContainerAppNameFunction · 0.36
TestURLFunction · 0.36
TestBackupDueFunction · 0.36
TestUpdateDueFunction · 0.36