本文整理匯總了Golang中github.com/cloudfoundry/hm9000/storeadapter.StoreAdapter.Set方法的典型用法代碼示例。如果您正苦於以下問題:Golang StoreAdapter.Set方法的具體用法?Golang StoreAdapter.Set怎麽用?Golang StoreAdapter.Set使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry/hm9000/storeadapter.StoreAdapter
的用法示例。
在下文中一共展示了StoreAdapter.Set方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1:
a1 = app.NewApp()
a2 = app.NewApp()
analyzer = New(etcdStoreAdapter)
})
insertDesiredIntoStore := func(desired models.DesiredAppState) {
key := "/desired/" + desired.StoreKey()
value := desired.ToJson()
node := storeadapter.StoreNode{
Key: key,
Value: value,
}
etcdStoreAdapter.Set([]storeadapter.StoreNode{node})
}
insertActualIntoStore := func(heartbeat models.InstanceHeartbeat) {
key := "/actual/" + heartbeat.StoreKey()
value := heartbeat.ToJson()
node := storeadapter.StoreNode{
Key: key,
Value: value,
}
etcdStoreAdapter.Set([]storeadapter.StoreNode{node})
}
Context("When /desired and /actual are missing", func() {
It("Should not send any start or stop messages", func() {
示例2:
for _, recordSize := range recordSizes {
recordSize := recordSize
Measure(fmt.Sprintf("Read/Write Performance With record size: %dbytes (will generate %d records)", recordSize, numRecords), func(b Benchmarker) {
data := make([]storeadapter.StoreNode, numRecords)
for i := 0; i < numRecords; i++ {
data[i] = storeadapter.StoreNode{
Key: fmt.Sprintf("/record/%d", i),
Value: randomBytes(recordSize),
TTL: 0,
}
}
b.Time("writing to the store", func() {
err := storeAdapter.Set(data)
Ω(err).ShouldNot(HaveOccured())
}, StorePerformanceReport{
Subject: "write",
StoreType: storeType,
NumStoreNodes: nodes,
RecordSize: recordSize,
NumRecords: numRecords,
Concurrency: concurrency,
})
b.Time("reading from the store", func() {
node, err := storeAdapter.ListRecursively("/record")
Ω(err).ShouldNot(HaveOccured())
Ω(len(node.ChildNodes)).Should(Equal(numRecords), "Didn't find the correct number of entries in the store")
}, StorePerformanceReport{
示例3:
. "github.com/onsi/gomega"
)
var _ = Describe("Walk", func() {
var etcdStoreAdapter storeadapter.StoreAdapter
BeforeEach(func() {
conf, _ := config.DefaultConfig()
etcdStoreAdapter = storeadapter.NewETCDStoreAdapter(etcdRunner.NodeURLS(), conf.StoreMaxConcurrentRequests)
err := etcdStoreAdapter.Connect()
Ω(err).ShouldNot(HaveOccured())
etcdStoreAdapter.Set([]storeadapter.StoreNode{
storeadapter.StoreNode{Key: "/desired-fresh", Value: []byte("123"), TTL: 0},
storeadapter.StoreNode{Key: "/actual-fresh", Value: []byte("456"), TTL: 0},
storeadapter.StoreNode{Key: "/desired/guid1", Value: []byte("guid1"), TTL: 0},
storeadapter.StoreNode{Key: "/desired/guid2", Value: []byte("guid2"), TTL: 0},
storeadapter.StoreNode{Key: "/menu/oj", Value: []byte("sweet"), TTL: 0},
storeadapter.StoreNode{Key: "/menu/breakfast/pancakes", Value: []byte("tasty"), TTL: 0},
storeadapter.StoreNode{Key: "/menu/breakfast/waffles", Value: []byte("delish"), TTL: 0},
})
})
It("can recurse through keys in the store", func() {
visited := make(map[string]string)
Walk(etcdStoreAdapter, "/", func(node storeadapter.StoreNode) {
visited[node.Key] = string(node.Value)
})
Ω(visited).Should(Equal(map[string]string{
"/desired-fresh": "123",
"/actual-fresh": "456",