mirror of https://github.com/dapr/quickstarts.git
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"time"
|
|
|
|
dapr "github.com/dapr/go-sdk/client"
|
|
)
|
|
|
|
var DAPR_CONFIGURATION_STORE = "configstore"
|
|
var CONFIGURATION_KEYS = []string{"orderId1", "orderId2"}
|
|
|
|
func main() {
|
|
client, err := dapr.NewClient()
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
// Get config items from config store
|
|
for _, key := range CONFIGURATION_KEYS {
|
|
config, err := client.GetConfigurationItem(ctx, DAPR_CONFIGURATION_STORE, key)
|
|
if err != nil {
|
|
fmt.Printf("Could not get config item, err:" + err.Error())
|
|
os.Exit(1)
|
|
}
|
|
c, _ := json.Marshal(config)
|
|
fmt.Println("Configuration for " + key + ": " + string(c))
|
|
}
|
|
|
|
// Subscribe for config changes
|
|
subscriptionID, err := client.SubscribeConfigurationItems(ctx, DAPR_CONFIGURATION_STORE, CONFIGURATION_KEYS, func(id string, items map[string]*dapr.ConfigurationItem) {
|
|
// Print config changes
|
|
for k, v := range items {
|
|
fmt.Printf("get updated config key = %s, value = %s \n", k, v.Value)
|
|
}
|
|
})
|
|
if err != nil {
|
|
fmt.Println("Error subscribing to config updates, err:" + err.Error())
|
|
os.Exit(1)
|
|
}
|
|
fmt.Println("App subscribed to config changes with subscription id: " + subscriptionID)
|
|
|
|
<-ctx.Done()
|
|
|
|
os.Exit(0)
|
|
}
|