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


Golang Client.Publish方法代碼示例

本文整理匯總了Golang中menteslibres/net/gosexy/redis.Client.Publish方法的典型用法代碼示例。如果您正苦於以下問題:Golang Client.Publish方法的具體用法?Golang Client.Publish怎麽用?Golang Client.Publish使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在menteslibres/net/gosexy/redis.Client的用法示例。


在下文中一共展示了Client.Publish方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: processSerialData

func (s SerialReader) processSerialData(redisConnection *redis.Client) {
	serialConnection := s.newSerialConnection()
	reader := bufio.NewReader(serialConnection)
	re := regexp.MustCompile("^([^:]+):(.+)$")

	for {
		reply, err := reader.ReadBytes('\n')

		if err != nil {
			log.Printf("processSerialData() #1: %s", err)
			continue
		}

		data := strings.TrimSpace(string(reply))

		if len(data) == 0 {
			continue
		}

		log.Printf("%s", data)
		raw_data := re.FindStringSubmatch(data)

		if len(raw_data) == 0 {
			continue
		}

		metrics := strings.Split(raw_data[2], ",")
		channel := fmt.Sprintf("rpi-moteino-collector:%s", raw_data[1])

		for i := 0; i < len(metrics); i++ {
			metric_key_and_value := strings.Split(metrics[i], ":")

			if len(metric_key_and_value) != 2 {
				continue
			}

			value := fmt.Sprintf("%s,%d,%s", metric_key_and_value[0], uint64(time.Now().Unix()), metric_key_and_value[1])

			_, err := redisConnection.LPush(channel, value)
			if err != nil {
				log.Printf("processSerialData() #2: %s", err)
			}

			_, err = redisConnection.Publish(channel, value)
			if err != nil {
				log.Printf("processSerialData() #3: %s", err)
			}
		}

		_, err = redisConnection.LTrim(channel, 0, 10)
		if err != nil {
			log.Printf("processSerialData() #4: %s", err)
		}
	}
}
開發者ID:ashmckenzie,項目名稱:rpi-moteino-collector,代碼行數:55,代碼來源:main.go

示例2: spawnPublisher

func spawnPublisher() error {
	var err error
	var publisher *redis.Client

	publisher = redis.New()

	err = publisher.Connect(host, port)

	if err != nil {
		log.Fatalf("Publisher failed to connect: %s\n", err.Error())
		return err
	}

	log.Println("Publisher connected to redis-server.")

	log.Println("Publishing some messages...")

	publisher.Publish("channel", "Hello world!")
	publisher.Publish("channel", "Do you know how to count?")

	for i := 0; i < 3; i++ {
		publisher.Publish("channel", i)
	}

	log.Printf("Closing publisher...\n")

	publisher.Quit()

	return nil
}
開發者ID:carriercomm,項目名稱:redis-3,代碼行數:30,代碼來源:main.go


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