in src/product-catalog/main.go [180:215]
func loadProductCatalog() {
log.Info("Loading Product Catalog...")
var err error
catalog, err = readProductFiles()
if err != nil {
log.Fatalf("Error reading product files: %v\n", err)
os.Exit(1)
}
// Default reload interval is 10 seconds
interval := DEFAULT_RELOAD_INTERVAL
si := os.Getenv("PRODUCT_CATALOG_RELOAD_INTERVAL")
if si != "" {
interval, _ = strconv.Atoi(si)
if interval <= 0 {
interval = DEFAULT_RELOAD_INTERVAL
}
}
log.Infof("Product Catalog reload interval: %d", interval)
ticker := time.NewTicker(time.Duration(interval) * time.Second)
go func() {
for {
select {
case <-ticker.C:
log.Info("Reloading Product Catalog...")
catalog, err = readProductFiles()
if err != nil {
log.Errorf("Error reading product files: %v", err)
continue
}
}
}
}()
}