「连载」边缘计算(三十一)03-13:边缘部分源码(源码分析篇)

(接上篇)

启动一个循环处理各种事件

m.mainLoop()定义具体如下所示。

KubeEdge/edge/pkg/metamanager/msg_processor.go

func (m *metaManager) mainLoop() {

go func() {

for {

if msg, err := m.context.Receive(m.Name()); err == nil {

...

m.process(msg)

} else {

...

}

}

}()

}

mainLoop()函数启动了一个for循环,在循环中主要做了两件事。

 1) 接收信息,具体如下所示。

msg, err := m.context.Receive(m.Name())

 2)对接收到的信息进行处理,具体如下所示。

m.process(msg)

 想弄明白对信息的处理过程,需要进入m.process()函数,具体如下所示。

KubeEdge/edge/pkg/metamanager/msg_processor.go

func (m *metaManager) process(message model.Message) {

operation := message.GetOperation()

switch operation {

case model.InsertOperation:

m.processInsert(message)

case model.UpdateOperation:

m.processUpdate(message)

case model.DeleteOperation:

m.processDelete(message)

case model.QueryOperation:

m.processQuery(message)

case model.ResponseOperation:

m.processResponse(message)

case messagepkg.OperationNodeConnection:

m.processNodeConnection(message)

case OperationMetaSync:

m.processSync(message)

case OperationFunctionAction:

m.processFunctionAction(message)

case OperationFunctionActionResult:

m.processFunctionActionResult(message)

case constants.CSIOperationTypeCreateVolume,

constants.CSIOperationTypeDeleteVolume,

constants.CSIOperationTypeControllerPublishVolume,

constants.CSIOperationTypeControllerUnpublishVolume:

m.processVolume(message)

}

}

process()函数中主要做了如下两件事。

 1)获取消息的操作的类型,具体如下所示。

operation := message.GetOperation()

2)根据信息操作类型对信息进行相应处理,具体如下所示。

switch operation {

...

}

信息的操作类型包括insert、update、delete、query、response、publish、meta-internal-sync、action、action_result等,本节不对信息的具体处理过程剖析,感兴趣的读者可以在本节的基础上自行剖析。

到此,对EdgeCoremetamanager模块的剖析就结束了。

未完待续……    

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值