本文整理匯總了Golang中github.com/basho-labs/riak-mesos/metadata_manager.ZkNode類的典型用法代碼示例。如果您正苦於以下問題:Golang ZkNode類的具體用法?Golang ZkNode怎麽用?Golang ZkNode使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了ZkNode類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: setCoordinatedData
func (riakNode *RiakNode) setCoordinatedData(child *metamgr.ZkNode, config templateData) {
coordinatedData := common.CoordinatedData{
NodeName: riakNode.taskData.FullyQualifiedNodeName,
DisterlPort: int(config.DisterlPort),
PBPort: int(config.PBPort),
HTTPPort: int(config.HTTPPort),
Hostname: riakNode.taskData.Host,
ClusterName: riakNode.taskData.ClusterName,
FrameworkName: riakNode.taskData.FrameworkName,
}
cdBytes, err := coordinatedData.Serialize()
if err != nil {
log.Panic("Could not serialize coordinated data ", err)
}
child.SetData(cdBytes)
}
示例2: runLoop
func (riakNode *RiakNode) runLoop(child *metamgr.ZkNode) {
runStatus := &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_RUNNING.Enum(),
}
_, err := riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
waitChan := riakNode.pm.Listen()
select {
case <-waitChan:
{
log.Info("Riak Died, failing")
// Just in case, cleanup
// This means the node died :(
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FAILED.Enum(),
}
_, err = riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
}
case <-riakNode.finishChan:
{
log.Info("Finish channel says to shut down Riak")
riakNode.pm.TearDown()
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FINISHED.Enum(),
}
_, err = riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
}
}
child.Delete()
time.Sleep(15 * time.Second)
log.Info("Shutting down")
riakNode.executor.Driver.Stop()
}
示例3: runLoop
func (riakNode *RiakNode) runLoop(child *metamgr.ZkNode) {
var runStatus *mesos.TaskStatus
var err error
// runStatus := &mesos.TaskStatus{
// TaskId: riakNode.taskInfo.GetTaskId(),
// State: mesos.TaskState_TASK_RUNNING.Enum(),
// }
// _, err := riakNode.executor.Driver.SendStatusUpdate(runStatus)
// if err != nil {
// log.Panic("Got error", err)
// }
waitChan := riakNode.pm.Listen()
select {
case <-waitChan:
{
log.Infof("Riak Died, finishing with status: %+v", riakNode.killStatus)
_, err = riakNode.executor.Driver.SendStatusUpdate(riakNode.killStatus)
if err != nil {
log.Panic("Got error", err)
}
}
case <-riakNode.finishChan:
{
log.Info("Finish channel says to shut down Riak")
riakNode.pm.TearDown()
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FINISHED.Enum(),
}
riakNode.killStatus = runStatus
_, err = riakNode.executor.Driver.SendStatusUpdate(riakNode.killStatus)
if err != nil {
log.Panic("Got error", err)
}
}
}
child.Delete()
time.Sleep(15 * time.Second)
log.Info("Shutting down")
riakNode.executor.Driver.Stop()
}
示例4: GetSchedulerState
func GetSchedulerState(mm *metadata_manager.MetadataManager) *SchedulerState {
var zkNode *metadata_manager.ZkNode
var err error
zkNode, err = mm.GetRootNode().GetChild("SchedulerState")
if err == zk.ErrNoNode {
ess := emptySchedulerState()
zkNode, err = mm.GetRootNode().MakeChildWithData("SchedulerState", ess.serialize(), false)
if err != nil {
log.Panic(err)
}
ess.zkNode = zkNode
return ess
} else {
ss, err := DeserializeSchedulerState(zkNode.GetData())
if err != nil {
log.Panic(err)
}
ss.zkNode = zkNode
return ss
}
}