X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f3250432a47c835f4c594348b0d4904a247c3365..a4211acb465bd42869bf2a2f9fad6ff2c5e518e0:/services/datamanager/datamanager.go diff --git a/services/datamanager/datamanager.go b/services/datamanager/datamanager.go index 2c5c36d44e..a8e506eacb 100644 --- a/services/datamanager/datamanager.go +++ b/services/datamanager/datamanager.go @@ -15,8 +15,9 @@ import ( ) var ( - logEventTypePrefix string + logEventTypePrefix string logFrequencySeconds int + minutesBetweenRuns int ) func init() { @@ -28,11 +29,28 @@ func init() { "log-frequency-seconds", 20, "How frequently we'll write log entries in seconds.") + flag.IntVar(&minutesBetweenRuns, + "minutes-between-runs", + 0, + "How many minutes we wait betwen data manager runs. 0 means run once and exit.") } func main() { flag.Parse() + if minutesBetweenRuns == 0 { + singlerun() + } else { + waitTime := time.Minute * time.Duration(minutesBetweenRuns) + for { + log.Println("Beginning Run") + singlerun() + log.Printf("Sleeping for %d minutes", minutesBetweenRuns) + time.Sleep(waitTime) + } + } +} +func singlerun() { arv, err := arvadosclient.MakeArvadosClient() if err != nil { log.Fatalf("Error setting up arvados client %s", err.Error()) @@ -47,8 +65,8 @@ func main() { var arvLogger *logger.Logger if logEventTypePrefix != "" { arvLogger = logger.NewLogger(logger.LoggerParams{Client: arv, - EventTypePrefix: logEventTypePrefix, - WriteInterval: time.Second * time.Duration(logFrequencySeconds)}) + EventTypePrefix: logEventTypePrefix, + WriteInterval: time.Second * time.Duration(logFrequencySeconds)}) } loggerutil.LogRunInfo(arvLogger) @@ -77,7 +95,7 @@ func main() { // not wait for the timer before exiting. if arvLogger != nil { arvLogger.FinalUpdate(func(p map[string]interface{}, e map[string]interface{}) { - p["run_info"].(map[string]interface{})["time_finished"] = time.Now() + p["run_info"].(map[string]interface{})["finished_at"] = time.Now() }) } }