本文整理汇总了Golang中github.com/gobby/src/command.Command.Type方法的典型用法代码示例。如果您正苦于以下问题:Golang Command.Type方法的具体用法?Golang Command.Type怎么用?Golang Command.Type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gobby/src/command.Command
的用法示例。
在下文中一共展示了Command.Type方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: CatchUp
//Use NOP to detect the gap slots [from, to)
func CatchUp(pn *paxosNode, from, to int) {
pn.catchupMutex.Lock()
pn.catchupCounter++
pn.catchupMutex.Unlock()
for index := from; index < to; index++ {
i := 1
c := new(command.Command)
c.Type = command.NOP
LOGV.Printf("node %d Try to catch up with slot %d\n", pn.nodeID, index)
success, _, num := pn.DoReplicate(c, 0, index)
for !success {
LOGV.Printf("node %d last Paxos is not success, waiting to try again...\n", pn.nodeID)
//TODO:maybe do not need to wait
time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)
LOGV.Printf("node %d last Paxos is not success, try again...\n", pn.nodeID)
//i++
LOGV.Printf("node %d Try to catch up with slot %d\n", pn.nodeID, index)
i = (num/pn.numNodes + 1)
success, _, num = pn.DoReplicate(c, i, index)
}
LOGV.Printf("Catched up with slot %d\n", index)
}
pn.catchupMutex.Lock()
pn.catchupCounter--
pn.catchupMutex.Unlock()
}