当前位置: 首页 > news >正文

dz论坛中英文网站怎么做视频外链平台

dz论坛中英文网站怎么做,视频外链平台,网站建设多少钱?,河南省重点项目建设网站(接上篇) EdgeCore之devicetwin 前面对EdgeCore组件的edged功能模块进行了分析,本节对EdgeCore组件的另一个功能模块devicetwin进行剖析,包括devicetwin的struct调用链剖析、devicetwin的具体逻辑剖析、devicetwin的缓存机制剖析…

(接上篇)

EdgeCoredevicetwin

前面对EdgeCore组件的edged功能模块进行了分析,本节对EdgeCore组件的另一个功能模块devicetwin进行剖析,包括devicetwin的struct调用剖析、devicetwin的具体逻辑剖析、devicetwin的缓存机制剖析。

1.devicetwin的struct调用剖析

EdgeCore模块注册函数入手,具体如下所示。

KubeEdge/edge/cmd/EdgeCore/app/server.go

// registerModules register all the modules started in EdgeCore

func registerModules() {

devicetwin.Register()

...

}

进入registerModules()函数中的devicetwin.Register()函数定义,具体如下所示。

KubeEdge/edge/pkg/devicetwin/devicetwin.go

// Register register devicetwin

func Register() {

dtclient.InitDBTable()

dt := DeviceTwin{}

core.Register(&dt)

}

Register()函数主要做了如下3件事。

1)初始化devicetwin需要的数据库表(dtclient.InitDBTable());

2)实例化DeviceTwin struct(dt := DeviceTwin{});

3)注册将已经实例化的DeviceTwin struct(core.Register(&dt))。

下面深入剖析初始化devicetwin需要的数据库表具体做了哪些事情以及DeviceTwin struct具体由哪些属性组成。

(1)devicetwin数据库相关struct剖析

这部分剖析初始化devicetwin需要的数据库及数据库表相关的struct,具体如下所示。

KubeEdge/edge/pkg/devicetwin/dtclient/sql.go

//InitDBTable create table

func InitDBTable() {

klog.Info("Begin to register twin model")

dbm.RegisterModel("twin", new(Device))

dbm.RegisterModel("twin", new(DeviceAttr))

dbm.RegisterModel("twin", new(DeviceTwin))

}

InitDBTable()函数中,通过封装的beegoorm(https://GitHub.com/astaxie/beego/tree/develop/orm)创建数据库twin,并初始化device、device_attr和device_twin三张表。与上述三张表对应的结构体如下所示。

KubeEdge/edge/pkg/devicetwin/dtclient/device_db.go

//Device the struct of device

type Device struct {

ID          string `orm:"column(id); size(64); pk"`

Name        string `orm:"column(name); null; type(text)"`

Description string `orm:"column(description); null; type(text)"`

State       string `orm:"column(state); null; type(text)"`

LastOnline  string `orm:"column(last_online); null; type(text)"`

}

KubeEdge/edge/pkg/devicetwin/dtclient/deviceattr_db.go

//DeviceAttr the struct of device attributes

type DeviceAttr struct {

ID          int64  `orm:"column(id);size(64);auto;pk"`

DeviceID    string `orm:"column(deviceid); null; type(text)"`

Name        string `orm:"column(name);null;type(text)"`

Description string `orm:"column(description);null;type(text)"`

Value       string `orm:"column(value);null;type(text)"`

Optional    bool   `orm:"column(optional);null;type(integer)"`

AttrType    string `orm:"column(attr_type);null;type(text)"`

Meta Data    string `orm:"column(metadata);null;type(text)"`

}

KubeEdge/edge/pkg/devicetwin/dtclient/devicetwin_db.go

//DeviceTwin the struct of device twin

type DeviceTwin struct {

ID              int64  `orm:"column(id);size(64);auto;pk"`

DeviceID        string `orm:"column(deviceid); null; type(text)"`

Name            string `orm:"column(name);null;type(text)"`

Description     string `orm:"column(description);null;type(text)"`

Expected        string `orm:"column(expected);null;type(text)"`

Actual          string `orm:"column(actual);null;type(text)"`

ExpectedMeta    string `orm:"column(expected_meta);null;type(text)"`

ActualMeta      string `orm:"column(actual_meta);null;type(text)"`

ExpectedVersion string `orm:"column(expected_version);null;type(text)"`

ActualVersion   string `orm:"column(actual_version);null;type(text)"`

Optional        bool   `orm:"column(optional);null;type(integer)"`

AttrType        string `orm:"column(attr_type);null;type(text)"`

Meta Data        string `orm:"column(metadata);null;type(text)"`

}

以上3个文件中除了包含与device、device_attr和device_twin三张表对应的结构体定义外,还有针对这三张表的增、删、改、查方法的定义。

未完待续…… 

http://www.yidumall.com/news/2742.html

相关文章:

  • 网站被百度收录室内设计培训
  • wordpress知更鸟begin武汉seo网络营销推广
  • ps制作网站产品图片seo关键词推广多少钱
  • wordpress 语言包修改石家庄seo外包的公司
  • 婚纱摄影网站设计免费生成短链接
  • 设置网站开场动画站长工具爱站
  • 网站分类目录大全常德seo公司
  • 西安 网站建设 费用软文广告范例大全
  • 线上营销渠道苏州首页排名关键词优化
  • 做国学类网站合法吗上海网站营销推广
  • 定制开发软件税率抖音seo排名
  • 增城专业建站公司如何优化关键词排名快速首页
  • 梅兰商贸网站开发设计简介福清市百度seo
  • 怎样制作wordpress主题汉化包seo成功的案例和分析
  • 国家重点高新技术企业名单seo在线教程
  • 北京国家建设部网站首页建立网站要多少钱一年
  • 日本男女做受网站深圳发布最新通告
  • 门户网站的区别营销型网站方案
  • 聚美优品网站建设方案seo如何优化的
  • 如何做自媒体和网站签约赚点击seo的定义
  • seo体系网站的建设及优化上海百度推广代理商
  • wordpress w3 total cache上海seo优化外包公司
  • 重庆网站建设首选卓光seo竞价培训
  • 建设网站是做什么常德网站seo
  • 自制头像生成器网站一个新产品策划方案
  • 做衣服招临工在什么网站找百度搜索高级搜索技巧
  • 大连 网站制作国外搜索引擎大全
  • 仪征市企业网站建设公司重庆seo排名软件
  • 如何进行网站建设云服务器免费
  • app开发做网站故事式的软文广告例子