-
Notifications
You must be signed in to change notification settings - Fork 27
/
main.go
40 lines (31 loc) · 914 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main
import (
"context"
"log"
"os"
"github.com/beatlabs/harvester"
"github.com/beatlabs/harvester/sync"
)
type config struct {
IndexName sync.String `seed:"customers-v1"`
CacheRetention sync.Int64 `seed:"43200" env:"ENV_CACHE_RETENTION_SECONDS"`
LogLevel sync.String `seed:"DEBUG" flag:"loglevel"`
}
func main() {
ctx, cnl := context.WithCancel(context.Background())
defer cnl()
err := os.Setenv("ENV_CACHE_RETENTION_SECONDS", "86400")
if err != nil {
log.Fatalf("failed to set env var: %v", err)
}
cfg := config{}
h, err := harvester.New(&cfg).Create()
if err != nil {
log.Fatalf("failed to create harvester: %v", err)
}
err = h.Harvest(ctx)
if err != nil {
log.Fatalf("failed to harvest configuration: %v", err)
}
log.Printf("Config : IndexName: %s, CacheRetention: %d, LogLevel: %s\n", cfg.IndexName.Get(), cfg.CacheRetention.Get(), cfg.LogLevel.Get())
}