當前位置: 首頁>>代碼示例>>Golang>>正文


Golang StoreAdapter.Set方法代碼示例

本文整理匯總了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() {
開發者ID:Zhann,項目名稱:hm9000,代碼行數:31,代碼來源:analyzer_test.go

示例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{
開發者ID:pivotal-cf-experimental,項目名稱:hmperformance,代碼行數:30,代碼來源:detailed_store_performance_test.go

示例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",
開發者ID:Zhann,項目名稱:hm9000,代碼行數:31,代碼來源:walk_test.go


注:本文中的github.com/cloudfoundry/hm9000/storeadapter.StoreAdapter.Set方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。