【发布时间】:2015-10-17 12:20:39
【问题描述】:
psc := redis.PubSubConn{c}
psc.Subscribe("example")
func Receive() {
for {
switch v := psc.Receive().(type) {
case redis.Message:
fmt.Printf("%s: message: %s\n", v.Channel, v.Data)
case redis.Subscription:
fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count)
case error:
return v
}
}
}
在上面的代码中(取自Redigo doc),如果连接丢失,所有订阅也会丢失。有什么更好的方法可以从丢失的连接中恢复并重新订阅。
【问题讨论】:
-
如何创建一个
redis.Pool,其Dial函数也订阅相应的频道。 -
@tim-cooper 非常干净的方式。 +1
标签: go redis publish-subscribe redigo