本文整理汇总了Golang中github.com/hashicorp/memberlist.TransmitLimitedQueue类的典型用法代码示例。如果您正苦于以下问题:Golang TransmitLimitedQueue类的具体用法?Golang TransmitLimitedQueue怎么用?Golang TransmitLimitedQueue使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TransmitLimitedQueue类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: checkQueueDepth
// checkQueueDepth periodically checks the size of a queue to see if
// it is too large
func (s *Serf) checkQueueDepth(limit int, name string, queue *memberlist.TransmitLimitedQueue, shutdownCh chan struct{}) {
for {
select {
case <-time.After(time.Second):
numq := queue.NumQueued()
if numq >= limit {
s.logger.Printf("[WARN] %s queue depth: %d", name, numq)
}
case <-shutdownCh:
return
}
}
}
开发者ID:rjw1,项目名称:serf,代码行数:15,代码来源:serf.go
示例2: sendTableEvent
func (nDB *NetworkDB) sendTableEvent(event TableEvent_Type, nid string, tname string, key string, entry *entry) error {
tEvent := TableEvent{
Type: event,
LTime: entry.ltime,
NodeName: nDB.config.NodeName,
NetworkID: nid,
TableName: tname,
Key: key,
Value: entry.value,
}
raw, err := encodeMessage(MessageTypeTableEvent, &tEvent)
if err != nil {
return err
}
var broadcastQ *memberlist.TransmitLimitedQueue
nDB.RLock()
thisNodeNetworks, ok := nDB.networks[nDB.config.NodeName]
if ok {
// The network may have been removed
network, networkOk := thisNodeNetworks[nid]
if !networkOk {
nDB.RUnlock()
return nil
}
broadcastQ = network.tableBroadcasts
}
nDB.RUnlock()
// The network may have been removed
if broadcastQ == nil {
return nil
}
broadcastQ.QueueBroadcast(&tableEventMessage{
msg: raw,
id: nid,
tname: tname,
key: key,
node: nDB.config.NodeName,
})
return nil
}
开发者ID:SUSE,项目名称:docker.mirror,代码行数:45,代码来源:broadcast.go
示例3: checkQueueDepth
// checkQueueDepth periodically checks the size of a queue to see if
// it is too large
func (s *Serf) checkQueueDepth(name string, queue *memberlist.TransmitLimitedQueue) {
for {
select {
case <-time.After(time.Second):
numq := queue.NumQueued()
if numq >= s.config.QueueDepthWarning {
s.logger.Printf("[WARN] %s queue depth: %d", name, numq)
}
if numq > s.config.MaxQueueDepth {
s.logger.Printf("[WARN] %s queue depth (%d) exceeds limit (%d), dropping messages!",
name, numq, s.config.MaxQueueDepth)
queue.Prune(s.config.MaxQueueDepth)
}
case <-s.shutdownCh:
return
}
}
}
开发者ID:robyoung,项目名称:serf,代码行数:20,代码来源:serf.go
注:本文中的github.com/hashicorp/memberlist.TransmitLimitedQueue类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论